- 하나의 문제는 단 한번만 풀도록 하는 알고리즘
- 이미 해결한 문제를 반복 계산하는 것을 막아 효율적으로 만드는 것
- 한번 계산한 결과를 "메모이제이션"을 활용해서 배열에 저장
#include <iostream>
using namespace std;
int d[100];
int fibonacci(int x) {
if (x == 1) return 1;
if (x == 2) return 1;
if (d[x] != 0) return d[x];
return d[x] = fibonacci(x - 1) + fibonacci(x - 2);
}
int main(void) {
cout << fibonacci(3) << endl;
}
'[알고리즘] 문제풀이 연습' 카테고리의 다른 글
백준 3052 - 나머지 : [c++ STL] set 이용 (0) | 2019.07.02 |
---|---|
2) 알고리즘 : 정렬 - 버블정렬(Bubble Sort) (0) | 2019.07.01 |
1) 알고리즘 : 정렬 - 선택정렬(selection sort) (0) | 2019.07.01 |
[알고리즘 공부 계획] + 백준 5598 - OX퀴즈 풀이 (0) | 2019.07.01 |
[C++] 벡터 사용법 / 깊이우선탐색 DFS (0) | 2019.06.18 |