Algorithm Study/Python

[백준 파이썬] # 15829 Hashing

728x90
반응형

Bronze II

# 15829 Hashing

링크 : https://www.acmicpc.net/problem/15829

 

15829번: Hashing

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

www.acmicpc.net

 

풀이

dic = {'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}

r = 31
M = 1234567891

L = int(input())
text = list(input())
s = 0

for i in range(L):
    s += dic[text[i]]*(r**i)
    
print(s%M)

 

후기

  • 해시를 와닿을 만큼 이해하기에는 부족하다. dictionary 타입을 이용하면 해시 문제를 풀 수 있다는 정도로 이해하고 넘어가겠다.