https://programmers.co.kr/learn/courses/30/lessons/12945#

#include <string>
#include <vector>
using namespace std;
int solution(int n) {
    vector<vector<int>> num(n, vector<int>(2, 0)); // 몫, 나머지
    num[0][0] = 0;
    num[0][1] = 1;
    num[1][0] = 0;
    num[1][1] = 1;
    for(int i=2;i<n;i++){
        num[i][1] = num[i-2][1] + num[i-1][1];
        num[i][0] = num[i-2][0] + num[i-1][0] + num[i][1]/1234567;
        num[i][1] %= 1234567;
    }
    return num[n-1][1];
}
long long fibonacci(int n)
{
  int i;
    long long dp[1000];
  dp[0]=0;
  dp[1]=1;
  for(i=2; i<=n; i++)
  {
    dp[i]=dp[i-1]+dp[i-2];
  }
    return dp[n];
}
int main()
{
    int testCase = 10;
    long long testAnswer = fibonacci(testCase);
    cout<<testAnswer;
}