python/알고리즘 문제풀이

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

빛날희- 2021. 5. 11. 20:58

programmers.co.kr/learn/courses/30/lessons/42576

 

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

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

programmers.co.kr

1. 첫번째 시도

def solution(participant, completion):
    pset= set(participant)
    cset= set(completion)
    if pset == cset:
        return [i for i in pset if participant.count(i)>=2][0]
    else: return list(pset- cset)[0]

-> 시간초과

 

 

2. 두번째 시도

def solution(participant, completion):
    participant.sort()
    completion.sort()
    for p,c in zip(participant, completion):
        if p != c:
            return p
    return participant.pop()

* pop 메서드의 default값은 -1이므로 가장 마지막 값을 빼준다.

*  zip함수는 두 리스트의 요소들을 하나씩 튜플로 묶은 후 리스트로 되돌려준다.