Programmers Practice/level 1

완주하지 못한 선수 (with Python3)

Phlano 2020. 7. 17. 18:02

https://programmers.co.kr/learn/courses/30/lessons/42576

 

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

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

programmers.co.kr

collections라는 모듈에 Counter함수를 사용하면 쉽게 풀 수 있다.

Counter함수는 자료구조에 각 요소가 몇 개씩 있는지 알 수 있는 함수이다.

ex) Counter(['a','a','b']) => {'a':2,'b':1}

그러면 participant 리스트와 completion 리스트에 각 Counter함수를 사용하고 그 둘을 빼면 남는 사람이 알 수 있을 것이다.

그 둘을 빼면 문제 설계대로 한 사람만 나오게 돼있으므로 list함수로 리스트로 바꾸고 [0]번째 값만 얻으면 완주하지 못한 선수를 알 수 있다.

from collections import Counter
def solution(participant, completion):
    return list(Counter(participant) - Counter(completion))[0]