알고리즘/백준
[백준] 15829번: Hashing / 파이썬
홍우진
2024. 12. 1. 22:35
728x90
반응형
문제 링크
https://www.acmicpc.net/problem/15829/
풀이 코드
L = int(input())
mun = input()
sum = 0
for i in range(L): #for문으로 L만큼 반복
sum += (ord(mun[i]) - 96) * (31**i)
#ord를 사용하여 알파벳을 아스키코드로 변환하고 - 96을 하여 a가 1이 되게 한다.
print(sum % 1234567891)
코드 해석
생각보다 간단하다.
ord는 아스키코드를 이용하여 알파벳을 숫자로 변환시켜준다.
a 가 97 부터 시작이기때문에 -96을 하여 알파벳의 시작점을 1로 만들어준다.
그 후에 나와있는 공식을 그대로 코드에 적용시켜주면 된다.
728x90
반응형