[프로그래머스] 완주하지 못한 선수(Python)

1. 요약

참여자 명단 중 오직 1명만 완주를 못한다고 할 때, 그 사람의 이름을 출력하는 문제

2. 아이디어

참여자 명단에 있는 이름을 key로 정하고 이름의 개수를 value로 정한다. 이름의 개수가 value인 이유는 문제의 조건에서 동명이인을 고려해야하기 때문이다.

이후, 완주자 명단에 있는 이름을 key로 접근하여 이름의 개수를 하나 차감하면 이름의 개수가 1인 value을 갖는 key가 하나 존재한다. 그 key가 문제의 정답이된다.


3. 코드

from collections import defaultdict

def solution(participant, completion):
    runners = defaultdict(int)
    for runner in participant:
        runners[runner] += 1
    
    for runner in completion:
        runners[runner] -= 1
    
    for runner in runners.keys():
        if runners[runner] > 0: return runner

좋은 웹페이지 즐겨찾기