백준 9507 c++ : DP

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int input_data(vector<int>& koong_nums) {
cout << "input_data()\n";
int t, n, i, max_num = -1;
cin >> t;
for (i = 0; i < t; i++) {
cin >> n;
koong_nums.push_back(n);
max_num = max(max_num, n);
}
return max_num;
}
void find_answer(int max_num, vector<int>& koong_nums) {
cout << "find_answer()\n";
int i;
vector<long long> koong_data(max_num + 1, 0);
koong_data[0] = 1;
koong_data[1] = 1;
koong_data[2] = 2;
koong_data[3] = 4;
for (i = 4; i <= max_num; i++) {
koong_data[i] = koong_data[i - 1] + koong_data[i - 2] + koong_data[i - 3] + koong_data[i - 4];
}
for (i = 0; i < koong_nums.size(); i++) {
cout << koong_data[(long long)koong_nums[i]] << "\n";
}
return;
}
int main(void) {
ios_base::sync_with_stdio(false);
cout.tie(NULL);
cin.tie(NULL);
vector<int> koong_nums;
int max_num;
max_num = input_data(koong_nums);
find_answer(max_num, koong_nums);
return 0;
}