본문 바로가기

STUDY/Python

[Softeer] 바이러스 python

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

'STUDY > Python' 카테고리의 다른 글

[알고리즘] 그리디 알고리즘  (0) 2023.07.04
[Softeer] GBC python  (0) 2023.06.25
[백준] 18258번 큐2 python  (0) 2023.06.20
[백준] 9012번 괄호 python  (0) 2023.06.19
[백준] 10828번 스택 python  (0) 2023.06.19