tier Hashing

풀이

문제에서 요구하는 부분을 효율적으로 잘 구현하면 됩니다.

예를 들어 는 매번 계산하지 말고 을 계산했던 값에 을 한번 더 곱하는 방식으로 구할 수 있습니다.

코드

def main():
    L = int(input())
    string = input()
 
    r = 31
    M = 1234567891
 
    r_pow = 1
    H = 0
    for char in string:
        H += (ord(char) - ord("a") + 1) * r_pow
        H %= M
 
        r_pow *= r
 
    print(H)
 
 
main()