Baekjoon

Baekjoon 15829번 Hashing

ppwag 2020. 7. 26. 22:26

문제

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() 를 찾는데 시간이 많이 걸렸다.

댓글