호기심 많은 분석가

[프로그래머스] 해시 - 완주하지 못한 선수 (Python) 본문

Coding/Coding Test & Algorithm

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

DA Hun 2021. 6. 23. 12:14
 

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

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

programmers.co.kr

from collections import Counter
def solution(participant, completion):
    ans = Counter(participant)-Counter(completion)
    answer = list(ans.elements())[0]
    return answer

 처음 봤을 때 가장 먼저 Counter 문법을 떠올리긴 했지만, Counter 결과끼리 뺄셈 연산이 되는지 몰라서 for문으로 풀었다. for문은 역시나 효율성에서 걸렸고, 구글링 한 뒤 Counter 문법을 사용해서 간단하게 해결하였다. 

 또 다른 방법으로는 set으로 풀이를 시도해봤는데 3번의 예시에서 틀렸다고 뜨기 때문에 사용할 수 없었다. 

Counter 뺄셈

# collections.Counter 예제 (10)
# Counter의 뺄셈
import collections
a = collections.Counter('aabbccdd')
b = collections.Counter('abbbce')
print(a-b)
'''
결과
Counter({'d': 2, 'c': 1, 'b': 1, 'a': 1})
'''


출처: https://excelsior-cjh.tistory.com/94 [EXCELSIOR]