#include <cstdio>
int main(void)
{
int t;
scanf("%d", &t);
for(int j=0; j<t; j++)
{
int n;
int c[11];
scanf("%d", &n);
c[0] = 1;
c[1] = 2;
c[2] = 4;
if(n>3)
{
for(int i=3; i<n; i++)
{
c[i] = c[i-1] + c[i-2] + c[i-3];
}
}
printf("%d\n", c[n-1]);
}
return 0;
}
알고리즘 분류 : 다이나믹 프로그래밍
Artikel Menarik Lainnya
동전2 | 백준 2294번
#include <cstdio>
int main(void) {
int n, k, num;
int N[100], K[10001]={0};
scanf(
연속합 | 백준 1912번
이번 문제는 시간 초과 때문에 생각을 많이 했다.
어쩌면 더 쉽게 풀 수 있는 걸, 전에 풀어봤던 다른 생각에 갇혀 있던 것 아니었나 싶다.
맨 처음 생각한 알고리즘은 다음과
설탕배달 | 백준 2839번
#include <cstdio>
int main() {
int n, result=0;
for(scanf("%d", &n); ; n-=3, res
경로찾기 | 백준 11403번
#include <iostream>
using namespace std;
int main() {
int n;
int graph[100][100];
ci
숫자삼각형 | 백준 1932번
#include <stdio.h>
int main(void) {
// your code goes here
int triangle[501][501];
in
2차원 배열의 부분합 구하기배열은 프로그래밍에서 가장 많이 쓰이는 자료구조 중 하나입니다. 그만큼 배열을 잘 다루는 것이 프로그래밍을 잘 하는 것이자, 개발이나 여러 문제 해결에 도움이 되는 측면이 크죠.
EmoticonEmoticon