Algorithm/Problems

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

공부좀하시졍 2022. 10. 26. 16:43

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

 

프로그래머스

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

programmers.co.kr

def solution(participant, completion):
    answer=''
    for idx, p in enumerate(participant):
        if p in completion:
            continue
        else:
            answer = participant[idx]
    return answer

아무생각 없이 짠 내 코드😥

이름이 같은 사람이 여러명 있고 그 중 한사람만 완주하는 경우에는 이 코드가 적용이 안되고 여러모로 엉망인듯,,

 

*Collections 모듈 Counter*

문자열이나, list의 요소를 카운팅하여 많은 순으로 딕셔너리형태로 리턴한다.

Counter() 객체끼리의 뺄셈 가능

 

import collections

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

completion의 길이는 participant보다 1 작기 때문에 list변환 후 첫번째 값을 리턴하면 되는 것 같다!