-> 너무 느리고, 비효율적으로 계산을 해서 시간초과가 남
#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
// 너무 느린 코드!!!
int fibo (int num) {
int result;
if (num < 2) {
return num;
} else {
return (fibo(num-1) + fibo(num-2));
}
return result;
}
int main() {
int n;
scanf("%d", &n);
printf("%d", fibo(n));
}
#include <iostream>
#include <vector>
using namespace std;
vector<long long> F;
long long fibo (int num) {
F.push_back(0);
F.push_back(1);
if (num < 2) {
return num;
} else {
for (int i=2;i<=num;i++) {
F.push_back(F[i-1]+F[i-2]);
//memoization : F[i-1],F[i-2]를 다시 계산하지 않고 저장된 값을 꺼내서 씀
}
}
return F[num];
}
int main() {
int n;
cin >> n;
cout << fibo(n) << endl;
}
vector<long long> F;
을 써야한다!