코드

 

# N을 만드는 방법 = [1개, 2개, 4개, 7개, 13개...]
# 7은 4+2+1
# 13은 7+4+2

T = int(input())

memo = [0]*11

def onetwothree(N): # N = 1~10
    if N == 1:
        return 1
    if N == 2:
        return 2
    if N == 3:
        return 4
    
    if memo[N] != 0:
        return memo[N]
    else:
        memo[N] = onetwothree(N-1)+onetwothree(N-2)+onetwothree(N-3)
        return memo[N]

for _ in range(T):
    N = int(input())
    print( onetwothree(N) )

'■코테 중요개념 > 다이나믹 프로그래밍(DP)' 카테고리의 다른 글

[백준 2193] 이친수  (0) 2020.04.30
[백준 1149] RGB거리  (0) 2020.04.30
[백준 11726] 2xn 타일링  (0) 2020.04.30
[백준 1463] 1로 만들기  (0) 2020.04.26
[백준 9461] 파도반 수열  (0) 2020.04.26
[백준 1932] 정수 삼각형  (0) 2020.04.26