728x90
#include "iostream"
using namespace std;

int dp[41] = { 0, 1 };

int main(){
    ios::sync_with_stdio(0);
    cin.tie(0);
    int T;
    cin >> T;
    int data[T];
    int max = -5;
    for(int i=0; i<T; i++){
        cin >> data[i];
        if( data[i] > max){
            max = data[i];
        }
    }

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

    for(int i=0; i<T; i++){
        if(data[i] == 0) cout << "1 0\n";
        else if(data[i] == 1) cout << "0 1\n";
        else cout << dp[data[i]-1] << " " << dp[data[i]] << "\n";
    }
}

반복문으로 원하는 값까지 더해서 출력하는 것이 빠른 것 같다고 생각이 든다.

재귀 호출, DP, 반복문 모두 구현해서 각 속도를 확인을 해보긴 해야겠다.

반응형

+ Recent posts