농장/프로그래머스 코딩테스트

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

귤발자 2021. 5. 3. 21:18
728x90
반응형

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

 

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

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

programmers.co.kr

 

 

def solution(participant, completion):
    answer = ''
    parti = sorted(participant[:])
    comp = sorted(completion[:])
    for i, c in enumerate(comp):
        if parti[i] != c: return parti[i]
    return parti[-1]

1. 정렬한다.

2. 일치하지 않는 부분이 곧 정답이다. 이때 반복문은 요소 개수가 더 적은 리스트를 중심으로 하여 Index out of range 에러가 나지 않도록 한다.

 

그런데 만약 completion을 중심으로 회전했을때 participant[:-1]까지와 일치하고 participant의 마지막 요소가 completion에 없는 경우를 마지막 줄의 return parti[-1]로 해결했다.

이 예외처리가 없어도 정답으로 판별되는데, 그 이유는 모르겠다.

728x90
반응형