import java.util.*;
class Solution {
public String solution(String[] participant, String[] completion) {
String answer = "";
Map<String, Integer> hm = new HashMap<>();
for(String p : participant) hm.put(p, hm.getOrDefalut(p, 0) + 1);
// 1을 저장, 근데 중복이 있을 때는 +1함 동명이인이면 2,3,4 이런 식으로 저장됨
for(String c : completion) hm.put(c, hm.get(c) -1);
// 아까 그 숫자에서 -1 하기
for(String key : hm.keySet()) {
if(hm.get(key) != 0) {
// 만약 완주했다면 1이었다가 -1해서 다시 0이 되어야 함
// 0이 아니면 완주하지 않았다는 뜻!
answer = key;
break;
}
}
return answer;
}
}
처음에는 Integer 말고 Boolean 타입을 사용해서 풀고 싶었는데 이렇게 하니까 동명이인 선수들 처리하기가 복잡해서 결국은 Integer를 사용해서 풀었다...
hash 쉽지 않네,,,
그래도 하다보면 익숙해지겠지?