๋ฐฑ์ค (boj) 15829 ํ์ด์ฌ - Hashing
*๋ฌธ์ ๋งํฌ : https://www.acmicpc.net/problem/15829
15829๋ฒ: Hashing
APC์ ์จ ๊ฒ์ ํ์ํ๋ค. ๋ง์ฝ ์ฌ๋ฌ๋ถ์ด ํ๊ต์์ ์๋ฃ๊ตฌ์กฐ๋ฅผ ์๊ฐํ๋ค๋ฉด ํด์ ํจ์์ ๋ํด ๋ฐฐ์ ์ ๊ฒ์ด๋ค. ํด์ ํจ์๋ ์์์ ๊ธธ์ด์ ์ ๋ ฅ์ ๋ฐ์์ ๊ณ ์ ๋ ๊ธธ์ด์ ์ถ๋ ฅ์ ๋ด๋ณด๋ด๋ ํจ์๋ก ์ ์ํ๋ค. ํด์ ํจ์๋ ๋ฌด๊ถ๋ฌด์งํ ์์ฉ ๋ถ์ผ๋ฅผ ๊ฐ๋๋ฐ, ๋ํ์ ์ผ๋ก ์๋ฃ์ ์ ์ฅ๊ณผ ํ์์ ์ฐ์ธ๋ค. ์ด ๋ฌธ์ ์์๋ ์ฌ๋ฌ๋ถ์ด ์์ผ๋ก ์ ์ฉํ๊ฒ ์ธ ์ ์๋ ํด์ ํจ์๋ฅผ ํ๋ ๊ฐ๋ฅด์ณ์ฃผ๊ณ ์ ํ๋ค. ๋จผ์ , ํธ์์ ์ ๋ ฅ์ผ๋ก ๋ค์ด์ค๋ ๋ฌธ์์ด์๋ ์๋ฌธ ์๋ฌธ์(a, b, ..., z)๋ก๋ง ๊ตฌ
www.acmicpc.net
๋ฌธ์ ๊ฐ ๋ฌด์ฒ ๊ธธ์์ง๋ง, ์ฝ๋ ๊ทธ๋๋ก ์ ๊ธฐ๋ง ํ๋ฉด ํ๋ฆฌ๋ ๋ฌธ์ ์๋ค.
apb = "abcdefghijklmnopqrstuvwxyz"
sum = 0
N = int(input())
string=list(input())
# print(string)
for idx, char in enumerate(string):
sum += (apb.find(char)+1)*(31**idx)
print(sum % 1234567891)
๋ง์ง๋ง ์ถ๋ ฅ๋ฌธ์์ 1234567891์ ๋ฌธ์ ํ๊ฐ์ด๋ฐ์ "M" ์ผ๋ก ์๋ ค์ค๋ค. (์ด๋ถ๋ถ์ ์ ๋๋ก ์์ฝ์ด์ ์ฒ์์ ์ค๋ต์ด์๋คใ .)