본문 바로가기

다이나믹 프로그래밍

1, 2, 3 더하기

https://www.acmicpc.net/problem/9095

 

9095번: 1, 2, 3 더하기

각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 출력한다.

www.acmicpc.net

점화식

D[N] = D[N-1] + D[N-2] + D[N-3]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <stdio.h>
int d[11];
int main() {
    d[0= 1;
    for (int i=1; i<=10; i++) {
        if (i-1 >= 0) {
            d[i] += d[i-1];
        }
        if (i-2 >= 0) {
            d[i] += d[i-2];
        }
        if (i-3 >= 0) {
            d[i] += d[i-3];
        }
    }
    int t;
    scanf("%d",&t);
    while (t--) {
        int n;
        scanf("%d",&n);
        printf("%d\n",d[n]);
    }
}
cs

'다이나믹 프로그래밍' 카테고리의 다른 글

1, 2, 3 더하기 5  (0) 2023.03.23
카드 구매하기 2  (0) 2023.03.22
카드 구매하기 (최대값)  (0) 2023.03.02
1로 만들기  (0) 2023.03.02
다이나믹 프로그래밍  (0) 2023.03.02