메모/알고리즘

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

Floodnut 2022. 1. 27. 23:32
 

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

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

programmers.co.kr

 

프로그래머스 완주하지 못한 선수 문제다.

리스트를 순회해서 remove 함수로 하나씩 제거해가며 푸는 방식을 처음 선택했었는데 remove 함수의 시간복잡도가 O(n)이다보니 반복문에 중첩하면 시간이 오래 걸린다.

 

이 후에 딕셔너리에 빈도 수를 측정하는 방식을 선택하여 해결했다.

 

제출 결과

더보기
def solution(participant, completion):
    hash = dict()
    
    for _p in participant:
        if _p in hash:
            hash[_p] += 1
        else:
            hash[_p] = 1
    
    for _c in completion:
        hash[_c] -= 1
    
    
    for _h in hash:
        if hash[_h] != 0:
            return _h