import java.util.HashMap;
import java.util.Map;
class Solution {
public String solution(String[] participant, String[] completion) {
Map<String, Integer> completions = new HashMap<>();
for (String target : completion) {
completions.put(target, completions.getOrDefault(target, 0) + 1);
// put 키와값을 넣어주는역활
// getOrDefault 키를 찾는데 있으면 키의 값을 반환 없으면 디폴트 값을 반환
// 그런데 여기선 디폴트 값을 반환해도 +1이 더해지기 떄문에 put으로 입력될때는 key=1로 저장됨
// 다음에 다시 같은 target을 찾으면 completions target의 value값(1)이 나와서 1+1로 target=2로 저장됨
}
String answer = "";
for (String target : participant) {
if (!completions.containsKey(target)) { // containsKey를 이용해서 키 값을 가지고 있는지 확인
answer = target;
break;
}
if (completions.get(target) != 0) {
completions.put(target, completions.get(target) - 1);
} else {
answer = target;
break;
}
}
return answer;
}
}