💡 다이나믹 프로그래밍
Memory 1116KB Time 0ms Code Length 254B
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include<stdio.h>
#define max(x,y) x>y?x:y
int memo[1001] = { 0, 1, 2 };
int dp(int n) {
for (int i = 3; i <= n; i++) {
memo[i] = (memo[i - 1] + memo[i - 2]) %10007;
}
return memo[n];
}
int main() {
int n;
scanf("%d", &n);
printf("%d", dp(n));
}
이 코드는 다이나믹 프로그래밍을 사용하여 n번째 피보나치 수를 계산하는 프로그램이다. memo 배열은 이미 계산된 값들을 저장하는 배열이다. dp 함수는 n까지의 피보나치 수를 계산하고 memo 배열에 저장하는 역할을 한다. main 함수에서는 사용자로부터 n을 입력받고 dp 함수를 호출하여 n번째 피보나치 수를 출력한다.