dq
로 푸는 문제 (피보나치니까 아마도..)
0
개 있을 때는, 안 뛰는 경우의 수 1
1
개 있을 때는, 한 번 뛰는 경우의 수 1
2
개 부터는, 0
개 있을 때에서 한 번에 2번 점프하는 경우의 수랑, 1
개 있을 때에서 한 번 점프하는 경우의 수를 더하면 된다는 아이디어(니까 다이나믹 프로그래밍이 맞겠지?)v[n] = v[n-1] + v[n-2]
#include <string>
#include <vector>
using namespace std;
long long solution(int n) {
long long answer = 0;
vector<int> v(n+1);
v[0]=1; v[1]=1;
for(int i=2;i<=n;i++)
{
v[i]=(v[i-1]+v[i-2])%1234567;
}
answer=v[n];
return answer;
}