본문 바로가기
프로그래머스/Lv.1

완주하지 못한 선수 - Pyhon, Counter

by 아찌방 2024. 11. 5.

 

https://school.programmers.co.kr/learn/courses/30/lessons/42576?language=python3

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

 

 

풀이 - 나의 생각

파이썬에 collections 모듈의 Counter 클래스라는 게 있다.

 

이걸 몰랐으니까

 

나는 그냥 딕셔너리를 통해

 

수제로 카운트를 해줬는데

 

Counter를 쓰면 바로 된다.

 

Counter로 생성한 객체끼리는 더하기, 빼기도 된다.

 

counter = Counter()
counter.update(['a', 'a', 'b'])
print(counter)
# 출력: Counter({'a': 2, 'b': 1})

 

이런 식으로 선언만 했다가

 

나중에 값을 추가할 수도 있다.

 

ps. 속도는 수제로 카운트하는게 빠르다.

코드

 

def solution(participant, completion):
    runner = {}
    
    for done in completion:
        if done not in runner:
            runner[done] = 1
        else:
            runner[done] += 1
    
    for start in participant:
        if start not in runner or runner[start] == 0:
            return start
        else:
            runner[start]-=1
    
    return ''

 

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

 

 

 

 

 

다음에 또 봐요

 

728x90