문제 풀이 및 개발 공간

[백준] 2225번 합분해 (gold 5 본문

백준공부/java

[백준] 2225번 합분해 (gold 5

gomduri43 2023. 12. 21. 19:29

import java.util.*;
import java.io.*;

public class Main{
    public static void main(String[] args) throws IOException{
        BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(System.out));
        StringTokenizer st=new StringTokenizer(br.readLine());
        int n=Integer.valueOf(st.nextToken());
        int k=Integer.valueOf(st.nextToken());
        int[][] dp=new int[k+1][n+1];
        for(int i=0; i<=n; i++){
            dp[1][i]=1;
        }

        for(int y=2; y<=k; y++){
            for(int j=0; j<=n; j++){
                for(int r=0; r<=n; r++){
                    if(j+r<=n){
                        dp[y][j+r]=(dp[y][j+r]+dp[y-1][r])%1000000000;
                    }
                }
            }
        }
        bw.write(dp[k][n]+"");
        bw.flush();

    }
}