

그냥 해시써서 차집합 구하면 되는 문제
def solution(participant, completion):
pc_dict = {}
for p in participant:
pc_dict[p] = pc_dict.get(p, 0) + 1 # 없으면 0 + 1해서 value에 1 저장되고
# 있었다면 원래 값에 1더해져서 value에 저장됨
for c in completion:
pc_dict[c] = pc_dict.get(c, 0) - 1
for k in pc_dict:
if pc_dict[k] == 1:
return k
이렇게 key-value 한개의 해시를 만들어서 value값을 직접 채우고 빼줘도 되고
from collections import Counter
def solution(participant, completion):
p_dict = Counter(participant)
c_dict = Counter(completion)
result = p_dict - c_dict
return(list(result)[0])
colllections의 Counter함수를 기억한다면
Counter함수에 리스트를 통째로 넣으면 알아서 개수 세서 해시맵으로 변환해주기에 이 녀석을 써서 두개의 해시맵을 만든 다음 차집합 구해서 풀 수도 있다.
'알고리즘 > 프로그래머스' 카테고리의 다른 글
| [알고리즘 고득점 kit/스택, 큐] 기능개발 (0) | 2026.04.29 |
|---|---|
| [알고리즘 고득점 kit/해시] 베스트앨범 (0) | 2026.04.28 |
| [알고리즘 고득점 kit/해시] 의상 (0) | 2026.04.28 |
| [알고리즘 고득점 kit/해시] 전화번호 목록 (0) | 2026.04.28 |
| [알고리즘 고득점 kit/해시] 폰켓몬 (0) | 2026.04.28 |