BOJ 문제풀이

백준 15829 c++ 풀이

koreasunoo 2021. 8. 7. 23:37

안녕하세요 오늘은 해시함수를 구현해야하는 문제를 풀어보겠습니다.

 

전략:

1. const int 타입을 통해 MOD, MUL 상수를 선언해준다.

2. string 타입의 문자를 선언하고 반복문과 -96을 통해 알파벳 숫자를 구해준다.

3. 문제에 나와있는 대로 더하고 나눈 나머지를 sum에 대입한다.

 

코드:

#include <bits/stdc++.h>
using namespace std;
const int  MOD = 1234567891;
const int  MUL = 31;
int main(){
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);

	int N;
	long long int sum = 0;
	cin>>N;
	string M;
	cin>>M;
	long long R = 1;
	
	for(int i= 0; i<N; i++){
		long long int in;
		in = ((M[i]-96)*R) % MOD;
		sum = (sum + ((M[i]-96)*R)) % MOD;
		R = (R * MUL) % MOD;
	}
	cout<<sum;
}

'BOJ 문제풀이' 카테고리의 다른 글

백준 1874번 c++ 풀이  (0) 2021.08.11
백준 1654번 c++ 풀이 (복습필요)  (0) 2021.08.10
백준 9012번 c++ 풀이  (0) 2021.08.07
백준 11866번 c++ 풀이  (0) 2021.08.06
백준 9184번 c++ 풀이  (0) 2021.08.06