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

Baedonguri·2022년 5월 9일
0
post-thumbnail

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

제출 코드

파이썬 내장 함수인 hash함수와 딕셔너리를 응용해서 풀었는데,
hash 함수는 들어온 값에 대해 다른 값과 겹치지 않는 고유값으로 리턴해준다.

참가자 리스트를 순회하면서 모든 참가자를 hashDict 딕셔너리에 넣어줄건데,
key를 해쉬값(hash(p))으로, value를 이름으로 저장해준 뒤,
해쉬값을 hashSum이라는 변수에 넣어준다.

이후 완주 명단을 돌면서 해쉬값을 hashSum에서 빼주게 되면
단 한사람의 해쉬값이 남게 되는데
이것으로 hashDict에 접근하면 완주하지 못한 선수의 이름을 알 수 있다.

def solution(participant,completion):
    hashSum = 0
    hashDic = {}
    
    for p in participant:
        hashDic[hash(p)] = p
        hashSum += hash(p)

    for c in completion:
        hashSum -= hash(c)

    return hashDic[hashSum]
profile
Software Engineer

0개의 댓글