프로그래머스
[프로그래머스] Lv.1 완주하지 못한 선수 [Python, Java]
YoonJuHan
2023. 6. 29. 14:14
- 문제 : https://school.programmers.co.kr/learn/courses/30/lessons/42576
- 해시 함수, 딕셔너리, 해시 맵
파이썬
def solution(participant, completion):
hashDict={}
sumHash=0
for name in participant:
hashDict[hash(name)]=name
sumHash+=hash(name)
for name in completion:
sumHash-=hash(name)
return hashDict[sumHash]
자바
import java.util.*;
class Solution {
public String solution(String[] participant, String[] completion) {
Map<String, Integer> map = new HashMap<>();
for (String name : participant) {
if (map.keySet().contains(name)) {
map.put(name, map.get(name)+1);
} else {
map.put(name, 1);
}
}
for (String name : completion) {
if (map.get(name) == 1) {
map.remove(name);
} else {
map.replace(name, map.get(name)-1);
}
}
return map.keySet().iterator().next();
}
}