Coding Test/Python

[프로그래머스] 완주하지 못한 선수 (level1, python)

lim.dev 2024. 1. 10. 18:51

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

아이디어

Counter 라이브러리를 사용해서 해결했다.

처음에는 그냥 for loop 돌면서 구현했는데 효율성 테스트에서 막혔다.

 

전체 코드

from collections import Counter

def solution(participant, completion):    
    count = Counter(completion)
    for p in participant: 
        if count[p] <= 0:
            return p
        count[p] -= 1

 

다른 사람의 코드

import collections

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

 

Counter 끼리 뺄셈이 가능하다.. !!