본문 바로가기
알고리즘/백준 BOJ

[ BOJ/C# ] 15829 Hashing

by 왹져박사 2023. 11. 3.
728x90

https://www.acmicpc.net/problem/15829

 

15829번: Hashing

APC에 온 것을 환영한다. 만약 여러분이 학교에서 자료구조를 수강했다면 해시 함수에 대해 배웠을 것이다. 해시 함수란 임의의 길이의 입력을 받아서 고정된 길이의 출력을 내보내는 함수로 정

www.acmicpc.net

문제를 풀 수록 해싱과 관련된 문제들이 나와 한번 제대로 공부해야겠다고 생각하였다. 

공부하긴 했지만 아직 크게 와닿지는 않는다. 활용한 문제들을 더 풀어봐야겠다. 

using System;
using System.IO;

namespace B15829
{
    class Program
    {
        static void Main()
        {
            StreamReader sr = new StreamReader(Console.OpenStandardInput());
            StreamWriter sw = new StreamWriter(Console.OpenStandardOutput());

            int l = int.Parse(sr.ReadLine());
            string str = sr.ReadLine();

            long result = 0;
            long r = 1;
            long mod = 1234567891;
            for(int i = 0; i < l; i++)
            {
                result += (str[i] - 97 + 1) * r;
                result %= mod;
                r *= 31;
                r %= mod;
            }
            sw.Write(result);
            sr.Close();
            sw.Flush();
            sw.Close();
        }
    }
}

728x90