문제는 다음과 같습니다.
문제가 간단하니까 제가 푼 방법을 간단하게 설명하자면,
저는 정수 n을 1, 2, 3 의 합으로 나타내는 방법을 배열 a[n]에 저장하였고,
이를 bottom-up 방법으로 풀었습니다.
전체 코드는 다음과 같습니다.
#include <bits/stdc++.h>
using namespace std;
long long MOD = 1000000009;
long long a[1000001]={0, };
void func(void){
a[1]=1; a[2]=2; a[3]=4;
for(int i=4; i<=1000000; i++){
a[i]=(a[i-1]+a[i-2]+a[i-3])%MOD;
}
}
int main() {
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
func();
int t, n;
cin>>t;
for(int i=0; i<t; i++){
cin>>n;
cout<<a[n]<<"\n";
}
return 0;
}