def solution(participant, completion):
p = dict(zip(participant, [0]*len(participant)))
c = dict(zip(completion, [0]*len(completion)))
for i in participant: # 참여자 딕셔너리(동명이인이면 값에 +1)
if p[i] != 0:
p[i] += 1
else:
p[i] = 1
for i in completion: # 완주자 딕셔너리(동명이인이면 값에 +1)
if c[i] != 0:
c[i] += 1
else:
c[i] = 1
for i in p.keys():
try:
if p[i] > c[i]: # 참여자 명단의 해당 선수 수가 완주자 명단의 해당 선수 수보다 클 때
return i
except: # 참여자에는 있지만 완주자에는 없는 경우, key 에러가 뜸
return i
import collections
def solution(participant, completion):
# 참가자와 완주자 리스트를 딕셔너리로 변환하여 중복 횟수를 세기 위해 Counter를 사용
# 완주자 리스트를 참가자 리스트에서 빼서 누락된 참가자를 찾음
answer = collections.Counter(participant) - collections.Counter(completion)
# 딕셔너리의 키 중에서 첫 번째 키, 즉 완주하지 못한 참가자를 반환
return list(answer.keys())[0]
Counter는 몰랐다 ..