반응형
완주하지 못한 선수
문제 설명
수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다.
마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요.
예시
participant | completion | return |
["leo", "kiki", "eden"] | ["eden", "kiki"] | "leo" |
["marina", "josipa", "nikola", "vinko", "filipa"] | ["josipa", "filipa", "marina", "nikola"] | "vinko" |
["mislav", "stanko", "mislav", "ana"] | ["stanko", "ana", "mislav"] | "mislav" |
코드 해석 및 전체 코드
1. 두 배열을 정렬한다.
2. 정렬된 배열의 요소가 같지 않을 경우 완주하지 못한 선수이므로, 그 선수 이름을 반환한다.
이름의 배열 위치를 같게 하기 위해서 두 배열을 정렬한다.
원래 배열은
["mislav", "stanko", "mislav", "ana"]
["stanko", "ana", "mislav"]
정렬되어있지 않지만, 정렬을 할 시
[ 'ana', 'mislav', 'mislav', 'stanko' ]
[ 'ana', 'mislav', 'stanko' ]
같은 위치에 같은 이름이 담길 수 있다.
participant[2](= mislav)와 completion[2](= stanko)는 같지 않으므로 완주하지 못한 선수인 mislav를 찾을 수 있다.
mislav는 동명이인으로 조건에 동명이인이 있을 수 있다고 하지만 정렬을 할 시 동명이인의 조건은 무시해도 괜찮다.
import java.util.Arrays;
class Solution {
public String solution(String[] participant, String[] completion) {
String answer = "";
Arrays.sort(participant);
Arrays.sort(completion);
for(int i = 0; i < completion.length; i++){
if(!participant[i].equals(completion[i])) {
return participant[i];
}
}
return participant[participant.length-1];
}
}
반응형
'코딩 테스트 > [JAVA] programmers 코딩 테스트 연습' 카테고리의 다른 글
[Programmers/JAVA] x만큼 간격이 있는 n개의 숫자 / 프로그래머스 코딩 테스트 연습 (0) | 2021.07.13 |
---|---|
[Programmers/JAVA] 모의고사 / 프로그래머스 코딩 테스트 연습 (0) | 2021.07.12 |
[Programmers/JAVA] 최대공약수와 최소공배수 / 프로그래머스 코딩 테스트 연습 (0) | 2021.06.16 |
[Programmers/JAVA] K번째 수 / 프로그래머스 코딩 테스트 연습 (0) | 2021.06.16 |
[Programmers/JAVA] 제일 작은 수 제거하기 / 프로그래머스 코딩 테스트 연습 (0) | 2021.06.15 |
댓글