Algorithm/Problem Solving 2020. 4. 22. 21:26

(공감과 댓글 하나는 글쓴이에게 큰 힘이 됩니다.)

 

문제 링크

- https://www.acmicpc.net/problem/2225

 

사용 알고리즘

- DP

 

풀이

- d[k][n] = 0 ~ n 정수 k개를 더해서 합이 n이 되는 경우의 수

- d[k][n] += d[k - 1][n - l] (0 <= l <= n)

 

소스 코드

- https://github.com/moomini/algorithm/blob/master/boj/2225.cpp

#include <cstdio>
 
int d[203][203];
 
int main(void) {
    int n, k; scanf("%d %d"&n, &k);
    d[0][0= 1;
    for (int i = 1; i <= k; ++i) {
        for (int j = 0; j <= n; ++j) {
            for (int l= 0; l <= j; ++l) {
                d[i][j] += d[i - 1][j - l];
                d[i][j] %= 1000000000;
            }
        }
    }
    printf("%d\n", d[k][n]);
    return 0;
}
cs

'Algorithm > Problem Solving' 카테고리의 다른 글

[BOJ/10430] 나머지  (0) 2020.04.22
[BOJ/2011] 암호코드  (0) 2020.04.22
[BOJ/9461] 파도반 수열  (0) 2020.04.22
[BOJ/2133] 타일 채우기  (0) 2020.04.22
[BOJ/1699] 제곱수의 합  (0) 2020.04.20
posted by DevMoomin
: