문제
문제 풀이
배열 값으로 10000개가 들어오는 문제로 On^2 을 사용하면 효율 테스트에서 떨어진다.
최대한 hash 자료구조를 사용하여 시간 복잡도를 줄여내야 하는 문제이다.
참여자를 HashMap에 담아주고 completion 에서 해당 주소에 맞는 값들이 있으면 카운팅을 줄여주는 문제로 접근.
나의 답안
public static String solution(String[] participant, String[] completion) {
String answer = "";
HashMap<String, Integer> hm = new HashMap<>();
for (String str : participant) {
hm.put(str, hm.getOrDefault(str, 0) + 1);
}
for (String str : completion) {
hm.put(str, hm.get(str) - 1);
}
for (String str : hm.keySet()) {
if (hm.get(str) == 1) answer = str;
}
return answer;
}