본문 바로가기
전공공부/코딩테스트

(c++) 백준 "15829)Hashing"

by 시아나 2022. 6. 2.

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

 

15829번: Hashing

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

www.acmicpc.net


 

#include <iostream>
#include <cmath>
#include <string>
#define mod 1234567891LL;
using namespace std;
int main() {
	int N; cin >> N;
	string str; cin >> str;
	unsigned long hash = 0;
	unsigned long mul = 1;
	for (int i = 0; i < N; i++) {
		long long tmp = (str[i] - 'a' + 1);
		tmp *= mul;
		tmp %= mod;
		hash += tmp;
		mul *= 31;
		mul %= mod;
	}
	hash %= mod;
	cout << hash << endl;
	return 0;
}