기타/백준
백준 C# 15829 Hashing
Krapboss
2024. 7. 10. 21:02
문제
M의 나머지 값이 되도록 해싱 값을 지정하는 것.
해결
거듭제곱으로 지속적으로 증가하는 'r^i' 값을 M의 나머지값으로 유지하는 것이 100점의 요점
internal class E15829 //Hashing
{
//'a' 아스키코드 = 97
static void Main(string[] args)
{
long r = 1, M = 1234567891,hash = 0 ;
Console.ReadLine();
string str = Console.ReadLine();
foreach (char c in str)
{
hash = (hash + (c-96) * r) % M;
r = (r * 31) % M;
}
Console.WriteLine(hash);
}
}