#include <iostream> using namespace std; int d[12]; int main() { d[0]=1; d[1]=1; d[2]=2; int n; cin>>n; while(n--) { int input; cin>>input; for(int i=3;i<=input;i++) { d[i]=d[i-3]+d[i-2]+d[i-1]; } cout<<d[input]<<"\n"; } return 0; }
d[n]을 n이 1,2,3의 합으로 표현되는 개수로 두었다
예를들어 x + x ... + x + O = n 인겨우 O에 자리에 1,2,3이 올수 있으므로 [x+x...+x] = n - O