본문 바로가기
코딩테스트/풀이

[Python] 완주하지 못한 선수 HashMap

by Yikanghee 2022. 3. 25.

HASH를 처음 사용해서 찍어가면서 문제를 풀었다

문제를 풀때 해시 테이블 개념을 사용했는데 만드는 방법은 간단하다

#딕셔너리 생성
dic = {} 

kk = ["abc", "edf"]

dic[hash(kk)] = kk

이런식으로 값을 넣어주면 dic[hash(kk)] 에 "abc", "edf" 에 대한 아스키 값이 들어가게 된다

 

이 방법을 사용해서 문제를 풀었다 코드와 결과를 보면 쉽게 이해할 수 있다

participant = list(input().split())
completion = list(input().split())

tmp = 0

dic = {}

for p in participant:

    dic[hash(p)] = p
    print("hash (p) = " + str(hash(p)))
    print("dic[hash(p)] = " + dic[hash(p)])

    tmp += int(hash(p))

for com in completion:

    tmp -= hash(com)

print("tmp = " + str(tmp))
kanghee oj kk
oj kanghee
hash (p) = 599771545252379686
dic[hash(p)] = kanghee
hash (p) = -2524011231458741283
dic[hash(p)] = oj
hash (p) = 322194471728654333
dic[hash(p)] = kk
oj
-2524011231458741283
kanghee
-2524011231458741283
tmp = 322194471728654333

 

댓글