프로그래머스 알고리즘/2단계
(프로그래머스 c++)피보나치 수
naeunchan
2020. 5. 21. 13:22
728x90
반응형
피보나치 수열을 DP로 풀었다.
피보나치 수열에 관한 문제는 재귀, DP, 반복문을 사용하여 풀 수 있는데,
시간을 고려해야 하는 경우는 대부분 DP를 이용하면 풀 수 있다.
배열을 이용하여 F(n) = F(n - 1) + F(n - 2) 의 값을 저장한다.
반복문을 돌면서 계속해서 F(n - 1), F(n - 2)의 값을 가져오기 때문에
재귀보다 빠르게 풀 수 있다.
#include <string>
#include <vector>
using namespace std;
int solution(int n) {
int answer = 0;
int num[100001] = {0, };
num[0] = 0;
num[1] = 1;
for(int i = 2; i <= n; i++)
{
num[i] = (num[i - 1] + num[i - 2]) % 1234567;
}
return num[n];
}
728x90
반응형