동까의 코딩

[python] 프로그래머스 - 완주하지 못한 선수 본문

문제 풀이/프로그래머스

[python] 프로그래머스 - 완주하지 못한 선수

동까의 코딩 2025. 3. 11. 14:38
반응형

해시를 이용한 '완주하지 못한 선수' 문제 풀이

이 포스트에서는 프로그래머스 완주하지 못한 선수 문제를 해시를 활용하여 풀어보는 방법을 소개합니다.
본 방법은 해시값의 합을 이용해 완주하지 못한 선수의 해시값을 계산한 후, 이를 딕셔너리에서 찾아내는 방식으로 진행됩니다.


문제 개요

  • 문제 설명:
    참가자 명단(participant)과 완주자 명단(completion)이 주어질 때, 완주하지 못한 한 명의 선수를 찾는 문제입니다.
    (동명이인이 존재할 수 있습니다.)

풀이 과정

  1. 해시값 계산 및 누적:
    참가자 리스트의 각 원소에 대해 hash() 함수를 사용하여 해시값을 계산하고, 이들을 모두 더합니다.
  2. 해시값 차감:
    완주자 리스트의 각 원소에 대해서 계산된 해시값을 누적합에서 차감합니다.
  3. 딕셔너리 활용:
    참가자의 해시값을 key로, 참가자 이름을 value로 저장한 딕셔너리를 활용하여, 최종 남은 해시값에 해당하는 참가자 이름을 찾습니다.

코드 구현

def solution(participant, completion):
    hashmap = {}
    hash_sum = 0
    for i in participant:
        hashmap[hash(i)] = i
        hash_sum += hash(i)

    for comp in completion:
        hash_sum -= hash(comp)
    answer = hashmap[hash_sum]
    return answer
반응형