개발자/C or C++

[백준] 2748번

Mosser 2021. 10. 2.
728x90
반응형

피보나치수열을 동적계획법(Dynamic Programming) 으로 푸는 문제인데, 동적계획법에 도저히 익숙해지지가 않아서 헤맸던 문제이댜. 여기서 중요하다고 느낀 첫번째는 동적계획법은 메모이제이션이 중요하다. 즉 작은 문제의 결과 값들을 다른곳에 저장해놓고 필요할 때마다 가져가서 쓰는게 중요하고, 두번째는 점화식을 만드는게 중요하다. 일단 점화식만드는게 너무 어려운것 같다. 다른 문제들의 풀이를 봐도 이해가 안가고 특히 점화식을 구현하는 부분에서 의문이 들었던 점은 어떻게 값을 초기화를 안하고 문제에 따라서 3차원 배열이나 2차원배열 이런 식으로 정하는지 도통 그런 의문이 해결되지 않았다. 앞으로 더 많은 문제를 풀면서 내 나름대로 이해를 해보려고 한다.

#include <iostream>
using namespace std;

long long fibo(int n){
    long long arr[91]={0,};
    int i;
    arr[0]=0;
    arr[1]=1;
    for(i=2;i<=90;i++)
        arr[i]=arr[i-1]+arr[i-2];

    return arr[n];
}
int main(){
    int n;
    cin>>n;

    if(n>90)
        return 0;
    cout<<fibo(n)<<endl;

    return 0;

}

 

반응형

'개발자 > C or C++' 카테고리의 다른 글

[백준] 2579번  (0) 2021.10.02
[백준] 1003번  (0) 2021.10.02
[백준] 10828번  (0) 2021.10.02
[백준] 4948번  (0) 2021.10.02
[백준] 1929번  (0) 2021.10.02

댓글