# 재귀를 활용해 푼 풀이
def cycle(n):
global cnt
if n == 0:
cnt += 1
return
for i in range(1,4): # 1~3까지의 수만으로 입력하기에
if n-i >= 0: cycle(n-i)
for i in range(int(input())):
n = int(input())
cnt = 0
cycle(n)
print(cnt)
# 규칙을 활용한 DP 풀이법
# n번째의 수는 n-1 + n-2 + n-3 의 값이 된다는 것을 활용
for _ in range(int(input())):
n = int(input())
dp = [0]*11
dp[1], dp[2], dp[3] = 1, 2, 4
for i in range(4, n+1):
dp[i] = dp[i-1]+dp[i-2]+dp[i-3]
print(dp[n])
'알고리즘' 카테고리의 다른 글
[백준, 2579번] 계단 오르기 (0) | 2023.07.31 |
---|---|
[백준, 1149번] RGB거리 (0) | 2023.07.30 |
[백준, 10870번] 피보나치 수 5 (0) | 2023.07.29 |
[백준, 10826번] 피보나치 수 4 (0) | 2023.07.29 |
[백준, 2749번] 피보나치 수 3 (0) | 2023.07.29 |