본문 바로가기
Algorithm/Programmers

[고득점 Kit(해시)] 완주하지 못한 선수 (Python)

by 원만사 2022. 1. 20.
반응형

 

 

코딩테스트 연습 - 완주하지 못한 선수

수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수

programmers.co.kr

 

풀이

 참여한 선수들을 사전에 추가한다. 동명이인이 있을 수 있으므로 참여한 선수의 이름을 key로 하고 value는 해당 이름을 카운트 한 값으로 설정한다.

 그 후 완주한 선수들을 사전에서 찾아서 value를 하나씩 줄여준다. 마지막에 사전을 탐색하는데 value가 0이 아닌 선수가 완주하지 못한 선수이므로 해당 선수의 이름을 return 해주면 된다.

 

코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
from collections import defaultdict
 
def solution(participant, completion):
    runDict = defaultdict(int)
 
    for p in participant:
        runDict[p] += 1
    
    for c in completion:
        runDict[c] -= 1
    
    for (key, value) in runDict.items():
        if value != 0:
            return key
cs
반응형

댓글