코딩테스트 대비/BOJ

[Baekjoon/Python] 15829번: Hasing - 효과는 굉장했다!

bluetag_boy 2021. 10. 8. 02:27
반응형
 

15829번: Hashing

APC에 온 것을 환영한다. 만약 여러분이 학교에서 자료구조를 수강했다면 해시 함수에 대해 배웠을 것이다. 해시 함수란 임의의 길이의 입력을 받아서 고정된 길이의 출력을 내보내는 함수로 정

www.acmicpc.net

SOLUTION

L = int(input())
hasing = input()
cnt = 0
ans = 0

alphabet = {'a': 1, 'b': 2, 'c':3, 'd':4, 'e':5, 'f':6, 'g':7, 'h':8, 'i':9,'j':10, 'k':11, 'l':12, 'm':13, 
'n':14 ,'o':15, 'p':16, 'q':17, 'r':18, 's':19, 't':20, 'u':21, 'v':22, 'w':23, 'x':24, 'y':25, 'z':26}

for i in hasing:
    ans += alphabet[i] * (31 ** cnt)
    cnt += 1 

print(ans % 1234567891) # 해시 함수의 정의에서 유한한 범위의 출력을 가져야 한다고 했으니 적당히 큰 수 M으로 나눠줘야 함