[softeer-LV2] 바이러스(python)

ckxo·2023년 8월 8일
0

softeer

목록 보기
6/9

문제

바이러스가 숙주의 몸속에서 1초당 P배씩 증가한다.

처음에 바이러스 K마리가 있었다면 N초 후에는 총 몇 마리의 바이러스로 불어날까? N초 동안 죽는 바이러스는 없다고 가정한다.

제약조건

1 ≤ K ≤ 108인 정수

1 ≤ P ≤ 108인 정수

1 ≤ N ≤ 106인 정수

입력형식

첫 번째 줄에 처음 바이러스의 수 K, 증가율 P, 총 시간 N(초)이 주어진다.

출력형식

최종 바이러스 개수를 1000000007로 나눈 나머지를 출력하라.

입력예제1

2 3 2

출력예제1

18

코드

import sys
input = sys.stdin.readline

K,P,N = map(int,input().split())

for i in range(N):
    K = (K * P) % 1000000007

print(K)

문제 이해

  • 처음 바이러스의 수 = K
  • 1초 당 P배씩 증가
  • N초 후 총 바이러스의 수 출력

풀이

k = mod((k*p),1000000007)를 n번 반복 후 k출력

추가사항

  • 반복문 안에서 %1000000007을 하지 않고, 반복문이 끝난 후 %1000000007를 해주면 통과하지 못함.
  • mod(a,b)와 a%b의 차이 알아보기
  • 해당 문제에선 Mod를 사용하지 않고 a%b를 사용해도 통과함

0개의 댓글