
link
프로그래머스_완주하지 못한 선수
1차 풀이
풀이 순서
- competion 배열을 리스트로 변경한다.
- 동명이인이 있기 때문에, 한번 비교대응된 이름은 리스트에서 제거한다.
- competion에 없는 이름이 나왔을때 answer 변수에 참가자 이름을 집어넣고 for문 종료
- return
code
import java.util.Arrays;
import java.util.List;
import java.util.ArrayList;
class Solution {
public String solution(String[] participant, String[] completion) {
List<String> com = new ArrayList<>(Arrays.asList(completion));
String answer = "";
for (String par: participant){
if(com.contains(par)){
com.remove(par);
}else{
answer = par;
break;
}
}
return answer;
}
}
- 테스트는 전부 맞았지만, 효율성 테스트에서 시간초과로 실패
2차 풀이
풀이 순서
- 각각 participant, compeltion sort
- for문 돌려서 일치하는지 확인
- 일치하지 않으면 return
코드
import java.util.Arrays;
import java.util.List;
import java.util.ArrayList;
class Solution {
public String solution(String[] participant, String[] completion) {
Arrays.sort(participant);
Arrays.sort(completion);
for(int i=0; i<completion.length; i++){
if(participant[i].equals(completion[i])){
continue;
}else{
return participant[i];
}
}
return participant[participant.length-1];
}
}
