완주하지 못한 선수 문제 바로가기

나의 풀이

from collections import Counter

def solution(participant, completion):
    participant = Counter(participant)
    for c in completion:
        participant[c] -= 1
        if participant[c] == 0:
            participant.pop(c)
    return list(participant.keys())[0]

고수의 풀이

import collections

def solution(participant, completion):
    answer = collections.Counter(participant) - collections.Counter(completion)
    return list(answer.keys())[0]

CODE REVIEW

  1. 단순히 arr1에서 arr2를 빼면 안되나 싶지만, 탐색하는데 시간이 오래걸려서 hash를 사용하는 편이 낫다.
  2. collections 모듈의 Counter을 사용했는데, 고수의 풀이를 보니 Counter에서 Counter을 뺄 수 있다는 점에서 한 수 배워간다.