https://hongjw1938.tistory.com/63
알고리즘 풀이 - 백준 2225(합분해, DP)
관련글 Dynamic Programming 관련 포스팅은 여기를 참조 1. 개요 문제 링크는 여기를 참조 문제의 내용을 보려면 아래 더보기 클릭 더보기 이 문제는 N, K가 주어질 때, N까지의 정수 K개를 더해서 그 합
hongjw1938.tistory.com
※. dp[N][K] (정수 k개를 더해서 N을 만듦)
※. 마지막에 더하는 숫자가 k 일 때 N을 만드는 경우의 수는 dp[N][k포함] = dp[N-k][이전횟수(-1)]
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
static long mod = 1_000_000_000;
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
int N = Integer.parseInt(st.nextToken());
int K = Integer.parseInt(st.nextToken());
long[][] dp = new long[N+1][K+1];
for(int i = 0; i <= N; i++) {
dp[i][1] = 1;
}
for(int i = 2; i <= K; i++) {
for(int j = 0; j <= N; j++) {
for(int k = 0; k <= j; k++) { //k를 더해서 j 만듦
dp[j][i] += dp[j-k][i-1];
dp[j][i] %= mod;
}
}
}
System.out.println(dp[N][K]);
}
}
'백준' 카테고리의 다른 글
[백준] 13172 Σ [자바] (0) | 2023.03.09 |
---|---|
[백준] 15663 N과 M(9) [자바] (0) | 2023.03.04 |
[백준] 26607 시로코와 은행털기 [자바] (0) | 2023.01.29 |
[백준] 1238 파티 [자바] (0) | 2023.01.18 |
[백준] 10830 행렬 제곱 [자바] (0) | 2023.01.16 |