3 같은 경우 3을 1, 2, 3으로 뺴 남은 0, 1, 2가 이전 dp단계라고 생각하면 쉽게 나온다.
#include <stdio.h>
#include <algorithm>
#include <math.h>
#include <iostream>
using namespace std;
int main() {
int n;
scanf("%d", &n);
int dp[15];
dp[0] = 1;
dp[1] = 1;
dp[2] = 2;
for (int i = 3; i < 11;i++) {
dp[i] = dp[i - 1] + dp[i - 2] + dp[i - 3];
}
int tmp;
for (int i = 0; i < n; i++) {
scanf("%d", &tmp);
printf("%d\n", dp[tmp]);
}
}
'Algorithm' 카테고리의 다른 글
백준 1260 DFS와 BFS (0) | 2020.03.12 |
---|---|
백준 9465 스티커 (0) | 2020.03.04 |
백준 6588번 골드바흐의 추측 (0) | 2020.03.02 |
백준 2579 계단오르기 (0) | 2020.03.02 |
백준 2920 음계 (0) | 2020.03.01 |