반응형
https://www.acmicpc.net/problem/15829
큰 수를 다루는 법을 구현하는 문제였습니다.
풀이방법 :
1. ord함수 : 문자의 아스키 코드값을 반환하는 함수입니다. 이를 통해 원하는 알파벳의 숫자수열을 구할 수 있었습니다.
2. 얻은 숫자수열을 문자열의 길이만큼 loop를 돌려 정해진 해싱함수를 돌려 결과값을 출력합니다.
Code :
def convertStrToInt(strWord):
tmp = []
for i in range(strSize):
tmp.append(ord(strWord[i])-96)
return tmp
strSize = int(input())
strWord = input()
r = 1
M = 1234567891
h = 0
convertedWord = convertStrToInt(strWord)
for i in range(strSize):
h += convertedWord[i] * r % M
h %= M
r*=31 % M
print(h)
'Algorithm > Implementation' 카테고리의 다른 글
(C++) - 백준(BOJ) 1620번 : 나는야 포켓몬 마스터 이다솜 답 (0) | 2020.09.08 |
---|---|
(C++) - 백준(BOJ) 1074번 : Z 답 (0) | 2020.09.08 |
(Python) - 프로그래머스(Programmers) : 전화번호 목록 답 (0) | 2020.08.16 |
(C++) - 프로그래머스(Programmers) : 완주하지 못한 선수 답 (0) | 2020.08.15 |
(C++) - 백준(BOJ) 2896번 : 무알콜 칵테일 답 (0) | 2020.07.24 |