본문 바로가기
파이썬알고리즘

20210625#(49) 백준 15988 1, 2, 3 더하기 3 (다이나믹 프로그래밍)

by zho 2021. 6. 25.

https://www.acmicpc.net/problem/15988

 

15988번: 1, 2, 3 더하기 3

각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 1,000,000,009로 나눈 나머지를 출력한다.

www.acmicpc.net

import sys
n=int(sys.stdin.readline())
dp=[0,1,2,4]
for i in range(4,1000001):
  dp.append((dp[i-3]+dp[i-2]+dp[i-1])%1000000009)

for i in range(n):
  testcase=int(input())
  print(dp[testcase])

 

기존 1,2,3 더하기 문제에서 n의 범위가 늘어나고 각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 1,000,000,009로 나눈 나머지를 출력한다. 라는 조건이 추가 된 문제

처음에는 testcase에 %1000000009를 했더니 메모리 초과가 나서 append 넣어줄때 해주니 메모리 초과가 나지 않았다.

728x90