본문 바로가기
Algorithm/softeer

[파이썬]softeer: 바이러스

by 갈잃자 2023. 1. 25.

 


해당 문제의 요점은 시간초과를 해결하는 것이다.

 

문제를 읽어보면, 어렵지 않은 로직을 가진 문제인데, 모든 변수가 많은 수의 범위를 가짐!

 

문제를 보고 구현을 해보면 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

댓글