https://programmers.co.kr/learn/courses/30/lessons/42576
import java.util.*;
class Solution {
public String solution(String[] participant, String[] completion) {
Map<String, Integer> map = new HashMap<>();
String result = "";
for (String c : completion) {
if (map.containsKey(c)) {
map.put(c, map.get(c) + 1);
}
else {
map.put(c, 1);
}
}
for (String p : participant) {
if (map.containsKey(p)) {
if (map.get(p) > 1) {
map.put(p, map.get(p) - 1);
}
else {
map.remove(p);
}
}
else {
result = p;
break;
}
}
return result;
}
}
완주자배열을 돌며 HashMap
을 생성, 이름의 수만큼을 value로 설정한다. 참가자배열을 돌며 HashMap
에서 존재하면 value값을 빼고 0이되면 HashMap
에서 key값을 삭제, 만약 key값이 존재하지 않으면 그 값이 정답