STUDY/Python

[Softeer] 바이러스 python

채소보끔 2023. 6. 25. 17:15
728x90

[첫번째 제출 - 시간초과]

import sys

# 1초당 p배씩 증가

k, p, n = map(int, sys.stdin.readline().split())

total_birus = (k*(p**n)) % 1000000007
print(total_birus)

input이 최대 10^8 이어 단순연산만으로도 시간 초과를 일으킬 수 있다는데...

이해가 잘되진 않았다..

 

아무튼 다른 방식으로 접근하려고 해보았다.

 

[두번째 제출 - 시간초과]

import sys

k, p, n = map(int, sys.stdin.readline().split())

total_birus = k
for _ in range(n):
    total_birus *= p

print(total_birus % 1000000007)

 

[통과 코드]

import sys

k, p, n = map(int, sys.stdin.readline().split())

total_birus = k * pow(p, n, 1000000007)
print(total_birus % 1000000007)

 

두번 나누어 나머지를 구했더니 되었다..

 

간단한 코드지만 시간 초과로 인해 계속 오류가 났다.

코드 실행 시간에 대해서도 공부를 해서 효율적으로 짜야겠다..

728x90