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

 

문제 설명

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

마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요.

 

 

예제 #1

leo는 참여자 명단에는 있지만, 완주자 명단에는 없기 때문에 완주하지 못했습니다.

예제 #2
vinko는 참여자 명단에는 있지만, 완주자 명단에는 없기 때문에 완주하지 못했습니다.

예제 #3
mislav는 참여자 명단에는 두 명이 있지만, 완주자 명단에는 한 명밖에 없기 때문에 한명은 완주하지 못했습니다.

 

설계 및 구현

 

my_solution

from collections import Counter

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

Counter()은 리스트의 요소와 그 요소의 갯수를 dict() 자료형으로 반환한다.

그리고 dict() 자료형은 -연산자를 이용해 차집합을 구할 수 있다.

 

1. Counter()로 participant, completion의 갯수를 구한다.

2. Couter(participant) - Counter(completion)연산을 수행하면 {완주하지 못한 사람의 이름,1}을 반환한다.

3. list(answer[0])로  완주하지 못한 사람의 이름을 return해주면 해결 

반응형

+ Recent posts