알고리즘/문제풀이

[Python] 백준 15829 "Hashing_해싱" 문제풀이

이손안나 2021. 9. 16. 14:34

import sys

L = int(sys.stdin.readline())

n = sys.stdin.readline().rstrip()

result=0
for i in range(L):
    result+=(ord(n[i])-96)*31**i

print(result %1234567891)

문제풀이

첫 줄에는 문자열의 길이를 받고 둘째줄에는 소문자 문자열을 입력받는다.

ord('a')=97이기 때문에 -96을 해준뒤 r^i 값을 곱해준다.

마지막에 1234567891을 나눈뒤 출력해주면 끝.

피드백

문자열에 대한 문제였다. 파이썬의 ord() 내장함수가 핵심이었다.