https://www.acmicpc.net/problem/9095
class Main {
static StringBuilder sb = new StringBuilder();
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
for (int i = 0; i < N; i++) {
solve(Integer.parseInt(br.readLine()));
}
System.out.println(sb);
}
static void solve(int num) {
int[] dp = new int[11];
dp[1] = 1;
dp[2] = 2;
dp[3] = 4;
for (int i = 4; i <= num; i++) {
dp[i] = dp[i - 1] + dp[i - 2] + dp[i - 3];
}
sb.append(dp[num]).append("\n");
}
}
1 + 3
은 3 + 1
과 다르다.1은 1개
, 2는 2개
, 3은 4개
가 있다.dp[n] = dp[n-3] + dp[n-2] + dp[n-1]
을 만족한다.