최대 1 분 소요

완주하지 못한 선수

문제 링크

내 풀이

def solution(participant, completion):
    hash_dict = {}
    hash_sum = 0
    for man in participant:
        hash_dict[hash(man)] = man
        hash_sum += hash(man)
    for man in completion:
        hash_sum -= hash(man)
        
    return hash_dict[hash_sum]

다른 풀이

def solution(participant, completion):
    answer = ''

    # 1. 두 list를 sorting한다
    participant.sort()
    completion.sort()

    # 2. completeion list의 len만큼 participant를 찾아서 없는 사람을 찾는다
    for i in range(len(completion)):
        if(participant[i] != completion[i]):
            return participant[i]

    # 3. 전부 다 돌아도 없을 경우에는 마지막 주자가 완주하지 못한 선수이다.
    return participant[len(participant)-1]

출처: https://coding-grandpa.tistory.com/85 [개발자로 취직하기:티스토리]

풀이 해석

  • 해싱을 이용한 풀이는 아니지만 sort를 이용하여 같은 위치에 다른 key가 있을 경우 완주하지 못한 사람이다

배울 점

  • sort를 활용하여 찾는 아이디어

댓글남기기