반응형
map사용 없이 문자열 직접 해싱해서 사용
long long hash(string s){
const int p = 53;
const int m = 1e9 + 9; //10^9 + 9
int hash_val = 0;
int pow_p = 1;
for(int i = 0; i < s.length(); i++){
hash_val = (hash_val + (s[i] - 'a' + 1) * pow_p) % m;
pow_p = (p * pow_p) % m;
}
return hash_val;
}
반응형
'Algorithm' 카테고리의 다른 글
[해싱] 백준 10840번 구간 성분 (0) | 2021.01.04 |
---|---|
[해싱] 백준 2002번 추월 (0) | 2021.01.03 |
[해싱] 백준 7453번 합이 0인 네 정수 (0) | 2021.01.02 |
[해싱] 백준 15829번 Hashing (1) | 2021.01.02 |
[2019 홍익대학교 프로그래밍 경진대회] 17828번 문자열 화폐 (0) | 2021.01.01 |