바위 뚫는중

[소프티어] Lv2. 바이러스 본문

Algorithms/소프티어

[소프티어] Lv2. 바이러스

devran 2023. 11. 3. 15:31
반응형

2️⃣ 바이러스

소프티어에서 유명한 문제라고해서 풀어봤다!

💡아이디어

숙주의 몸속에서 1초당 P배씩 증가!

K마리가 있었다면 N초 후에는 몇마리?!

예시를 들어

2마리가 있는데 1초당 3배씩 증가하고 2초후에는..?

2 → 6 → 18

즉, k → k * p → k * p * p n만큼 이를 반복한다

📝 풀이

오버플로우 등을 고려하지 않은 틀린 풀이

k, p, n = map(int, input().split())
ans = 0
for i in range(n):
  ans += k*p*(i+1)
print(ans % 1000000007)

처음에는 순전히 답의 나머지를 구하면 된다고 생각했는데

그렇게 되면 연산이 진행되는 와중에도 값이 너무 커져서 오버플로우가 발생한다.

중간에도 큰수로 나눈 나머지로 값을 지정해놓고 연산을 진행해야한다.

정답 풀이

k, p, n = map(int, input().split())
for i in range(n):
  k = k * p 
  k = k % 1000000007
print(k % 1000000007)
반응형

'Algorithms > 소프티어' 카테고리의 다른 글

[소프티어] Lv2. 지도 자동 구축  (0) 2023.11.21
[소프티어] Lv2. 금고털이  (0) 2023.11.21
[소프티어] Lv2. GBC  (0) 2023.11.21
[소프티어] Lv2. 전광판  (0) 2023.11.06
[소프티어] Lv3. 성적평균  (0) 2023.11.03