프로그래밍 공부방

[프로그래머스] 해시_완주하지 못한 선수 본문

프로그래밍/프로그래머스

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

김갱갱 2022. 1. 4. 01:46

프로그래머스 (programmers.co.kr)

 

프로그래머스

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

programmers.co.kr


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

빠르게 찾기 위해서 참가자와 완주자 리스트를 sort()로 정렬해준다.

for문을 완주자의 수만큼 돌린다.

참가자와 완주자 리스트가 정렬되어있기 때문에 같은 인덱스에서 값이 다른 것을 찾는다. 

값이 다르다면 완주자에는 해당 참가자가 없기 때문에 정답이다.

 

만약 위에서 답이 나오지 않는다면 맨 마지막 참가자가 완주하지 못한 선수라고 볼 수 있다.

왜냐하면 참가자가 완주자보다 더 많을 수 밖에 없는데 for문 반복을 완주자 수만큼만 했기 때문이다.

 

따라서 이러한 코드를 짰다.