완주하지 못한 선수

bird.j·2021년 6월 25일
0

프로그래머스

목록 보기
10/53

프로그래머스

  • 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다.
  • 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요.
  • 마라톤 경기에 참여한 선수의 수는 1명 이상 100,000명 이하입니다.
  • completion의 길이는 participant의 길이보다 1 작습니다.
  • 참가자의 이름은 1개 이상 20개 이하의 알파벳 소문자로 이루어져 있습니다.
  • 참가자 중에는 동명이인이 있을 수 있습니다.

participant에는 있으나 completion에는 없는 이름 하나를 찾으면 된다.

입출력

participantcompletionreturn
["leo", "kiki", "eden"]["eden", "kiki"]"leo"
["marina", "josipa", "nikola", "vinko", "filipa"]["josipa", "filipa", "marina", "nikola"]"vinko"
["mislav", "stanko", "mislav", "ana"]["stanko", "ana", "mislav"]"mislav"


접근 방식

participant에서 for문을 돌며 not in 으로 completion에 없거나 동명이인의 경우를 위해 해당 이름의 수가 다른 경우 리턴하였다. ---> 시간초과

알게된 점

정렬을 한 다음에 zip으로 같은 인덱스의 원소끼리 비교하면 훨씬 빠르다.



코드

def solution(participant, completion):
    participant.sort()
    completion.sort()
    
    for p, c in zip(participant, completion):
        if p != c:
            return p
    return participant[-1]

0개의 댓글