https://www.acmicpc.net/problem/2748
#include <bits/stdc++.h>
using namespace std;
long long dp[91], n;
long long fibo(long long idx) {
//기저사례
if (idx == 0 || idx == 1) return idx;
//메모
long long& ret = dp[idx];
if (ret) return ret; //값이 있으면 바로리턴
//로직
return ret = fibo(idx - 1) + fibo(idx - 2);
}
int main() {
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cin >> n;
cout << fibo(n) << '\n';
return 0;
}
'Algorithm > dp' 카테고리의 다른 글
프로그래머스 보행자천국 c++ // dp, 경우의수는 dp를 의심하라. (0) | 2023.12.07 |
---|---|
백준 2565 전깃줄 c++ // dp, LIS(최장부분증가수열) 풀이 (0) | 2023.12.01 |
백준 2225 합분해 c++ // dp 규칙찾는 방법 (0) | 2023.11.29 |
백준 2294 동전2 c++ // dp 동전논리 정리, 규칙성발견 dp테이블 형식 (0) | 2023.11.29 |
백준 2293 동전1 c++ // dp, 경우의수는 덧셈이다! (0) | 2023.11.28 |