문제
https://www.acmicpc.net/problem/15829
걸린 시간
00 : 40 : 52
풀이
Python3
def change(string):
dic = {chr(i):(i-0x61+1) for i in range(0x61, 0x7a+1)}
return dic.get(string, '-1')
if __name__ == "__main__":
L = int(input())
string = input()
num = []
for i in range(0, L):
num.append(change(string[i]) * (31**i))
print(sum(num) % 1234567891)
hashing 에 대한 개념을 설명해주고 그대로 따라 구현하는 문제이다.
파이썬 딕셔너리(dictionary) 자료구조를 사용해서 작은 케이스, 큰 케이스 모두 한번에 통과한 것 같다.
알파벳에 고유한 번호를 부여하기 위한 작업으로 정수값을 ascii 문자로 바꾸어주는 파이썬 내장 함수 chr()
를 찾는데 시간이 많이 걸렸다.
'Baekjoon' 카테고리의 다른 글
Baekjoon 1068번 트리 (0) | 2020.08.01 |
---|---|
Baekjoon 1620번 나는야 포켓몬 마스터 이다솜 (0) | 2020.07.27 |
Baekjoon 2869번 달팽이는 올라가고 싶다 (0) | 2020.07.26 |
Baekjoon 2775번 부녀회장이 될테야 (0) | 2020.07.26 |
Baekjoon 2292번 벌집 (0) | 2020.07.26 |
댓글