해당 문제의 요점은 시간초과를 해결하는 것이다.
문제를 읽어보면, 어렵지 않은 로직을 가진 문제인데, 모든 변수가 많은 수의 범위를 가짐!
문제를 보고 구현을 해보면 k*(p^n)의 식이 성립이 되는데, 이는 수가 너무 커져서 시간초과의 큰 요인이됨
그래서 고안한 방법
import sys
input = sys.stdin.readline
k, p, n = list(map(int,input().split()))
for i in range(n):
k = k*p % 1000000007
print(k)
k*(p^n) == k*p*p*p.... 이 된다.
곱해질 숫자를 그때그때 1000000007 로 나누게 된다면, 곱해지는 숫자가 작아지고 시간초과의 틀을 벗어날 수 있음
'Algorithm > softeer' 카테고리의 다른 글
[파이썬]softeer: 전광판 (0) | 2023.01.27 |
---|---|
[파이썬]softeer: 비밀 메뉴 (0) | 2023.01.26 |
[파이썬]softeer: 회의실 예약 (0) | 2023.01.24 |
[파이썬]softeer: 금고털이 (1) | 2023.01.23 |
댓글