codes/programmers

42576 완주하지 못한 선수

카제xd 2024. 12. 10. 15:02

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

 

from collections import defaultdict

def solution(participant, completion):
    lists = defaultdict(int)
    
    for part in participant:
        lists[part] += 1
    
    for succ in completion:
        lists[succ] -= 1
        
    for l in lists:
        if lists[l]:
            return l

 

 

[개선할 점]

-collections.Counter을 통해 participant에서 completion을  빼서 구현할 수도 있음. 딕셔너리는 값을 뺄 수 없지만 카운터 객체라서 가능하다고 함.

from collections import Counter

a = Counter(["leo", "kiki", "eden", "eden"])
b = Counter(["eden", "kiki"])

a # Counter({'eden': 2, 'leo': 1, 'kiki': 1})
b # Counter({'eden': 1, 'kiki': 1})
a-b # Counter({'leo': 1, 'eden': 1})

 

'codes > programmers' 카테고리의 다른 글

86491 최소직사각형  (1) 2024.12.13
12906 같은 숫자는 싫어  (0) 2024.12.12
42839 소수 찾기  (0) 2024.12.09
42748 K번째수  (1) 2024.12.09
42626 더 맵게  (0) 2024.12.09