반응형
문제
풀이 및 정답
그냥 for문 사용해 모든 값들을 비교한 코드는 정확하지만, 시간 초과가 났다. (그 와중에 효율성 하나는 통과했다.)
매번 무식하게 함수를 호출해 for문을 계속 부르기 때문에 시간 초과가 난 것이다.
조건은 최대 참여자의 수가 100,000, 코드가 최소한의 수만 반복을 해야 시간 초과X,
완주자+1==참여자, 미완주자는 무조건 한명, 중복 이름 있음.
미완주자 한명 빼고 배열의 값들이 다 똑같으니,
둘다 정렬 되었을 때 미완주자가 있는 부분부터 두 배열 안의 값이 달라진다.
두 배열을 정렬을 하고, 최대로 배열의 길이만큼만 비교를 하게 다시 코드를 짰다.
코드
알아야할 것
간단하게 배열 정렬 하기
배열 정렬 함수 Arrays.sort();
오름차순 => Arrays.sort(변수명);
내림차순 => Arrays.sort(변수명, Collections.reverseOrder());
*주의) import java.util.Arrays; 잊지말자.
내림차순은 import java.util.Collections도 코드에 써야한다.
반응형
'코딩테스트 연습 > 프로그래머스 알고리즘' 카테고리의 다른 글
2019 카카오 개발자 겨울 인턴십 - 크레인 인형뽑기 게임 (0) | 2020.04.11 |
---|---|
해시 - 전화번호 목록 (0) | 2020.04.05 |