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() 내장함수가 핵심이었다.
'알고리즘 > 문제풀이' 카테고리의 다른 글
[Python] 백준 10162 "전자레인지_greedy" 문제풀이 (0) | 2021.09.28 |
---|---|
[Python] 백준 2720 "세탁소사장동혁_greedy" 문제풀이 (0) | 2021.09.28 |
[Python] 백준 2231 "분해합_완전탐색" 문제풀이 (0) | 2021.09.16 |
[Python] 백준 2798 "블랙잭_완전탐색" 문제풀이 (0) | 2021.09.15 |
[Python] 백준 12605 "단어 순서 뒤집기_스택" 문제풀이 (0) | 2021.09.09 |