문제
단 한명의 마라톤 참가자만 완주하지 못했다.
Participant와 Completion의 배열이 주어질 때 완주하지 못한 사람을 찾아라.
내 코드
def solution(participant, completion):
d = dict()
answer = ''
for i in range(len(participant)):
if participant[i] not in d:
d[participant[i]]=1
else:
d[participant[i]]+=1
for i in range(len(completion)):
if completion[i] in d:
d[completion[i]]-=1
for k in d.keys():
if d[k] > 0:
return k
문제 풀이
Python의 Dictionary를 활용하여 participant의 참가자를 key-value 형태로 등록한 후
completion과 비교하여 value를 하나씩 가감한다.
후에 1이 남는 참가자를 return 한다.
고수 풀이
Counter 함수를 통해 key-value를 count하고 dictionary를 뺌으로써 value가 1인 key만 남게 된다.
import collections
def solution(participant, completion):
answer = collections.Counter(participant) - collections.Counter(completion)
return list(answer.keys())[0]
'Python > Programmers' 카테고리의 다른 글
Lv.1-음양 더하기 (0) | 2021.07.07 |
---|---|
Lv.1-소수 찾기 (0) | 2021.07.07 |
Lv.1-K번째 숫자 꺼내기 (0) | 2021.07.07 |
Lv.1-신규 아이디 추천 (0) | 2021.07.07 |
Lv.1-폰켓몬 (0) | 2021.07.07 |