코드

 

T = int(input())

memo = [0] * 101

def pdb(N):
    if (N == 1):
        return 1
    if (N == 2):
        return 1
    if (N == 3):
        return 1
    if (memo[N] != 0):
        return memo[N]
    else:
        memo[N] = pdb(N-2) + pdb(N-3)
        return memo[N]

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



''' 시간초과 
T = int(input())

def pdb(N):
    if (N == 1):
        return 1
    if (N == 2):
        return 1
    if (N == 3):
        return 1
    return pdb(N-2)+pdb(N-3)

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

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

[백준 2193] 이친수  (0) 2020.04.30
[백준 1149] RGB거리  (0) 2020.04.30
[백준 11726] 2xn 타일링  (0) 2020.04.30
[백준 9095] 1, 2, 3 더하기  (0) 2020.04.26
[백준 1463] 1로 만들기  (0) 2020.04.26
[백준 1932] 정수 삼각형  (0) 2020.04.26