본문 바로가기
이론/코딩테스트

[백준] 1003번 피보나치 함수 (동적 계획법/Dynamic Programming)

by 퇴근후개발 2022. 7. 28.
반응형

- 문제

- 작성 코드

#include <iostream>
#include <vector>
using namespace std;

int main()
{
    int t, max =0;
    cin >> t;
    vector<int> a(t);
    vector<vector<int> > dp(41, vector<int>(2, 0));
    for (int i = 0; i < t; i++)
    {
        cin >> a[i];
        if (max < a[i]) max = a[i];
    }
    dp[0][0] = 1;
    dp[0][1] = 0;
    dp[1][0] = 0;
    dp[1][1] = 1;

    for (int i = 2; i <= max; i++)
    {
        dp[i][0] = dp[i - 2][0] + dp[i - 1][0];
        dp[i][1] = dp[i - 2][1] + dp[i - 1][1];
    }

    for (int i = 0; i < t; i++)
    {
        cout << dp[a[i]][0] << " " << dp[a[i]][1] << "\n";
    }

    return 0;
}
반응형