문제

기본적으로 주어진 코드 :
class Solution {
public String solution(String[] participant, String[] completion) {
String answer = "";
return answer;
}
}
정답
import java.util.Arrays;
class Solution {
public String solution(String[] participant, String[] completion) {
Arrays.sort(participant);
Arrays.sort(completion);
// 2. 두 배열이 다를 때까지 찾는다
for(int i = 0; i < completion.length; i++) {
if(!participant[i].equals(completion[i])) {
return participant[i];
}
}
return participant[participant.length - 1];
}
}
해설
- 주어진 두 배열을 먼저 정렬합니다.
- 정렬한 이후 완주한 사람 이름 목록 배열의 길이를 기준으로 반복문을 진행시키면서 같은 인덱스 값을 participant배열과 completion 배열에 적용시켜 서로 다른 값이 나오면 해당 participant 배열 값을 return합니다.
- completion 배열은 participant 배열 보다 길이 값이 반드시 1 작기 때문에 반복문을 끝까지 돌았는데도 return 하지 않았다면 participant 배열의 마지막 사람이 완주하지 못한 사람입니다. (마지막 인덱스 : length - 1)
Share article