Problem Solving/백준
[15829] Hashing
충무로술겜마
2021. 7. 5. 16:43
https://www.acmicpc.net/problem/15829
15829번: Hashing
APC에 온 것을 환영한다. 만약 여러분이 학교에서 자료구조를 수강했다면 해시 함수에 대해 배웠을 것이다. 해시 함수란 임의의 길이의 입력을 받아서 고정된 길이의 출력을 내보내는 함수로 정
www.acmicpc.net
문제가 친절하게 해쉬가 뭔지 해쉬 콜리젼이 뭔지까지 설명해줘서 유익했던거 같아요.
저는 저 내용 컴퓨터보안 강의에서 배웠었는데 ㅋㅋ
A*B mod M == (A mod M) * (B mod M)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
import java.util.*
import kotlin.math.pow
fun main() {
val sc:Scanner = Scanner(System.`in`)
val L:Int = sc.nextInt()
val M:Long = 1234567891
var R:Long = 1
var sum:Long = 0
var str = sc.next()
var charArray = CharArray(size = L)
for(i in 0 until L){
charArray[i] = str[i].toChar()
}
for (i in 0 until L){
sum += (charArray[i].code-96)*R
sum %= M
R *= 31
R %= M
}
println(sum)
}
|
cs |