자바/백준

[백준 15829] Hashing

슈슈버거 2022. 12. 1. 17:16

문제

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

 

15829번: Hashing

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

www.acmicpc.net


내가 작성한 코드

import java.io.*;
import java.math.BigInteger;

public class qor15829 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

        int length = Integer.parseInt(br.readLine());
        String sentence = br.readLine();

        BigInteger result = new BigInteger("0");
        BigInteger M = new BigInteger("1234567891");
        BigInteger r = new BigInteger("31");

        for(int i = 0; i<length; i++){
            BigInteger a = new BigInteger(sentence.charAt(i)-96+"");

            for(int j = 0; j<i; j++){
                a = a.multiply(r);
            }

            result = result.add(a.mod(M));
        }

        bw.write(result.mod(M)+"");
        bw.close();
    }
}

 

BigInteger 오랜만에 썼다

'자바 > 백준' 카테고리의 다른 글

[백준 10989] 수 정렬하기 3  (0) 2022.12.01
[백준 2292] 벌집  (0) 2022.12.01
[백준 2839] 설탕 배달  (0) 2022.11.28
[백준 1436] 영화감독 숌  (0) 2022.11.28
[백준 11651] 좌표 정렬하기 2  (1) 2022.11.28