백준 15829번 Hashing(Java)

마뇽미뇽·2024년 7월 13일

알고리즘 문제풀이

목록 보기
77/168

1.문제

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

2.풀이

3.코드

package com.example.baekjoon;

import java.io.*;
import java.util.*;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        int n = Integer.parseInt(br.readLine());    //  문자열 길이
        String s = br.readLine();   //  문자열

        long sum = 0;
        long r = 1;
        long m = 1234567891;

        for (int i = 0; i < n; i++) {   //  문자열 쪼개기
            long num = s.charAt(i) - 'a' + 1; // 1부터 시작
            sum += num * r;
            r = ((r * 31) % m);    // Math.pow를 사용하면 int 범위까지만 가능함
        }
        System.out.println(sum % m);
    }
}
profile
Que sera, sera

0개의 댓글