15829 Hashing ๐ŸŸซ

kkmdevelยท2024๋…„ 9์›” 6์ผ

์ฝ”๋”ฉํ…Œ์ŠคํŠธ

๋ชฉ๋ก ๋ณด๊ธฐ
2/21
post-thumbnail

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

๋ฌธ์ œ ์ž์ฒด๋Š” ์–ด๋ ต์ง€ ์•Š์•˜์ง€๋งŒ
intํ˜• ๋ฐ์ดํ„ฐ๋ฅผ ์ดˆ๊ณผํ•˜๊ธฐ ๋•Œ๋ฌธ์— long์ด๋‚˜ BigInteger๋ฅผ ์‚ฌ์šฉํ•˜๋Š”๊ฒƒ์ด ๊ด€๊ฑด์ด๋‹ค.

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.io.BufferedWriter;
import java.io.OutputStreamWriter;
import java.util.StringTokenizer;

public class Main {

  static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
  static BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
  static StringTokenizer st;
  static long sum = 0;
  static long pow = 1;

  public static void main(String[] args) throws IOException {
    st = new StringTokenizer(br.readLine());
    int num = Integer.parseInt(st.nextToken());
    st = new StringTokenizer(br.readLine());
    String s = st.nextToken();
    for (int i = 0; i < num; i++) {
      sum += (s.charAt(i) - 96) * pow;
      pow = (pow * 31) % 1234567891;
    }

    bw.write(sum % 1234567891 + "\n");
    bw.close();
    br.close();
  }
}
profile
25/08/12

0๊ฐœ์˜ ๋Œ“๊ธ€