본문 바로가기

Algorithm/DP(Dynamic Programing)

(C++) - 프로그래머스(연습문제) : 피보나치 수

반응형

programmers.co.kr/learn/courses/30/lessons/12945

 

코딩테스트 연습 - 피보나치 수

피보나치 수는 F(0) = 0, F(1) = 1일 때, 1 이상의 n에 대하여 F(n) = F(n-1) + F(n-2) 가 적용되는 수 입니다. 예를들어 F(2) = F(0) + F(1) = 0 + 1 = 1 F(3) = F(1) + F(2) = 1 + 1 = 2 F(4) = F(2) + F(3) = 1 + 2 = 3 F(5) = F(3) + F(4) =

programmers.co.kr

간단한 dp 예제였습니다.

 

풀이방법

 점화식에 따라 배열을 만들어 값을 저장해주시면 됩니다. 또한 modula연산시 결합법칙이 가능합니다.

 

Code

#include <bits/stdc++.h>
using namespace std;
int solution(int n) {
    int answer = 0;
    int a[100001];
    memset(a,0,sizeof(a));
    a[1] = 1;
    a[2] = 1;
    for(int i = 3; i <= n; i++)
        a[i] = (a[i-1] + a[i-2]) % 1234567;
    return a[n];
}