Algorithm/Baekjoon

[백준]9095 1, 2, 3 더하기 파이썬 python

rrojin 2022. 2. 5. 13:54

문제링크

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

 

9095번: 1, 2, 3 더하기

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

www.acmicpc.net

코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
import sys
input = sys.stdin.readline
= int(input())
for i in range(t):
    n = int(input())
    d = [0]*12
    d[1= 1
    d[2= 2
    d[3= 4
    if n>3:
        for i in range(4,n+1):
            d[i] = d[i-1]+d[i-2]+d[i-3]
    print(d[n])
 
cs

Point

 - 다이나믹프로그래밍으로 접근

 Subproblem 만족 & Optimal Substructure 

 

- 풀이 방법:

현재 할 수 있는 행동은 3가지 => +3 or +2 or +1