- 초기 버전(50점)
import math
import sys
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}
r = 31
M = 1234567891
l = int(sys.stdin.readline())
myStr = sys.stdin.readline()
sum = 0
for i in range(l):
sum += alphabet[myStr[i]]*math.pow(r, i)
print(int(sum%M))
- 개선 버전
import math
import sys
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}
r = 31
M = 1234567891
l = int(sys.stdin.readline())
myStr = sys.stdin.readline()
sum = 0
for i in range(l):
sum += alphabet[myStr[i]]*(r**i)
print(sum%M)