본문 바로가기
알고리즘 & 자료구조/백준

백준 2225

by 신재권 2021. 9. 2.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;


public class Main2225 {

	public static void main(String[] args) throws IOException{
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringTokenizer st = new StringTokenizer(br.readLine());
		final int mod = 1_000_000_000;
		int N = Integer.parseInt(st.nextToken()); // 0~N까지의 정수 K를 더해서 그 합이 N이 되는 경우의 수
		int K = Integer.parseInt(st.nextToken()); 
		long[][] D = new long[K+1][N+1];
		
		//점화식
		//D[K][N] = ∑ D[K-1][N-L]
		
		D[0][0] = 1L;
		for(int i=1; i<=K; i++){ 
			for(int j=0; j<=N; j++){ 
				for(int l=0; l<=j; l++){ // L은 J를 넘을 수 없다. 0 <= L <= N
					D[i][j] += D[i-1][j-l];
					D[i][j] %= mod;
				}
			}
		}
		System.out.println(D[K][N]);
		
	}

}

'알고리즘 & 자료구조 > 백준' 카테고리의 다른 글

백준 1149  (0) 2021.09.06
백준 15988  (0) 2021.09.05
백준 1699  (0) 2021.09.01
백준 1912  (0) 2021.09.01
백준 14002  (0) 2021.08.31