아카이브
article thumbnail
Published 2023. 8. 9. 15:59
15829번: Hashing 알고리즘/boj

15829번: Hashing (acmicpc.net)

 

15829번: Hashing

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

www.acmicpc.net

풀이

분배법칙을 사용해서 long의 범위값 안에 들어가게 했다.

사용한 분배 법칙

 


코드

//java8
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

class Main {
    static final int M = 1234567891;
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int L = Integer.parseInt(br.readLine());
        char[] string = br.readLine().toCharArray();

        long sum = 0;
        long pow = 1;
        for (int i = 0; i < L; i++) {
            sum += (string[i]-'a'+1) * pow % M;
            pow = pow * 31 % M;
        }
        System.out.print(sum % M);
    }
}

'알고리즘 > boj' 카테고리의 다른 글

1259번: 팰린드롬수  (0) 2023.08.09
2798번: 블랙잭  (0) 2023.08.08
2292번: 벌집  (0) 2023.08.08
profile

아카이브

@charoon

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!