본문으로 바로가기
<해시 알고리즘을 이용한 풀이>
public String solution(String[] participant, String[] completion) {
String answer = "";
HashMap<String, Integer> hashMap = new HashMap<String, Integer>();
for (String person : participant)
hashMap.put(person, hashMap.getOrDefault(person, 0)+1); /* 동명이인이 있을 경우(같을 키일 경우) 기존 키값에 +1 된다 */
for (String person : completion)
hashMap.put(person, hashMap.get(person)-1); /* 완주한 사람들 제외하는 과정 */
for (String key : hashMap.keySet()) {
if (hashMap.get(key) != 0) {
answer = key;
}
}
return answer;
}
public static void main(String[] args) {
SolutionEx1 ex1 = new SolutionEx1();
String[] participant = {"mislav", "stanko", "mislav", "ana"};
String[] completion = {"stanko", "ana", "mislav"};
System.out.println(ex1.solution(participant, completion));
}
<해시를 사용하지 않은 풀이>
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])) {
return participant[i];
}
}
return participant[participant.length-1];
}
public static void main(String[] args) {
SolutionEx1 ex1 = new SolutionEx1();
String[] participant = {"mislav", "stanko", "mislav", "ana"};
String[] completion = {"stanko", "ana", "mislav"};
System.out.println(ex1.solution(participant, completion));
}