프로그래머스 완주하지 못한 선수 를 풀기 위해 해시라는 것을 처음 사용해봤다.
import java.util.HashMap;
class Solution {
public String solution(String[] participant, String[] completion) {
String answer = "";
HashMap<String, Integer> HM = new HashMap<>();
for (String name : participant) HM.put(name, HM.getOrDefault(name, 0) + 1);
for (String name : completion) HM.put(name, HM.get(name) - 1);
for (String key : HM.keySet()) {
if (HM.get(key) != 0) {
answer = key;
break;
}
}
return answer;
}
}
import java.util.HashMap;
class Main {
public static void main(String[] args) {
HashMap<String, Integer> HM = new HashMap<>();
}
}
for (String name : participant) HM.put(name, HM.getOrDefault(name, 0) + 1);
getOrDefault(name, 0) + 1
HM에 동일한 key 값이 존재할경우 반환하여 value 값에 +1 를 한다.
동명이인이 있을 경우 value 값이 2 이다.
[key : "이름", value : 2] 형태가 된다.
아닐 경우 0을 반환하여 value 값이 1 이다.
[key : "이름", value : 1]
for (String name : completion) HM.put(name, HM.get(name) - 1);
for (String key : HM.keySet()) {
if (HM.get(key) != 0) {
answer = key;
break;
}
}