코딩테스트 대비/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으로 나눠줘야 함