본문 바로가기

프로그래밍/알고리즘

알고리즘 연습 프로그래머스 - 완주하지 못한 선수

프로그래머스의 hash 문제 

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

 

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

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

programmers.co.kr

첫 번째 풀이 

단순히 두 배열을 소트해서 앞에서부터 하나씩 지우다가 다른 서로 값이 다를때  참가자의 값을 리턴하면 된다. 근거는

선수의 이름은 참가자가 한명 더 많을 뿐, 그 사람을 뺀 나머지는 모두 같다고 했기 때문이다.

 

def solution(participant, completion):
    participant.sort()
    completion.sort()
    for i in range(len(completion)):
        if participant[i] != completion[i]:
            return participant[i]
        
    answer = participant[0]
    return answer