https://www.acmicpc.net/problem/15988
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
'파이썬알고리즘' 카테고리의 다른 글
20210630#(51) 프로그래머스 완주하지 못한 선수 (0) | 2021.06.30 |
---|---|
20210630#(50) 프로그래머스 k번째수 (0) | 2021.06.30 |
20210625#(48) 백준 2579 계단 오르기 (다이나믹 프로그래밍) (0) | 2021.06.25 |
20210622#(47) 백준 11726 2×n 타일링(다이나믹 프로그래밍) (0) | 2021.06.22 |
20210622#(46) 백준 9095 1, 2, 3 더하기(다이나믹 프로그래밍) (0) | 2021.06.22 |