import java.util.Arrays;
import java.util.ArrayList;
import java.util.Collections;
class Solution {
public String solution(String[] participant, String[] completion) {
String answer = "";
ArrayList<String> participantList = new ArrayList<String>(Arrays.asList(participant));
ArrayList<String> completionList = new ArrayList<String>(Arrays.asList(completion));
Collections.sort(participantList);
Collections.sort(completionList);
for(int i = 0 ; i < completionList.size() ; i++) {
if(!completionList.get(i).equals(participantList.get(i))){
return answer = participantList.get(i);
}
}
//for문에서 답이 나오지않은 경우, 배열의 마지막 참가자가 곧 완주하지 못한선수
answer = participantList.get(participantList.size()-1);
return answer;
}
}
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(!completion[i].equals(participant[i])){
return answer = participant[i];
}
}
//for문에서 답이 나오지않은 경우, 배열의 마지막 참가자가 곧 완주하지 못한선수
answer = participant[participant.length-1];
return answer;
}
}
class Solution {
public String solution(String[] participant, String[] completion) {
String answer = "";
for(String n : participant) {
if(!isComplete(n, completion)) {
answer = n;
break;
}
}
return answer;
}
public boolean isComplete(String s, String[] c) {
for(int i = 0 ; i < c.length ; i++) {
if(s.equals(c[i])) {
c[i]=""; //동명이인 선수 방지
return true;
}
}
return false;
}
}
효율성 테스트에서 보듯 정렬방식의 변경으로는 최대 약30%에 불과한 속도 향상이 있었다. 좀 더 공부를 하여 더 나은 방식으로 더 많은 시간을 단축시켜보고싶다.