백준 2225번 : 합분해

반응형

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

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.StringTokenizer;

public class Main {
    int n;
    int k;
    int[][] dp;
    public void solution() throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());
        n = Integer.parseInt(st.nextToken());
        k = Integer.parseInt(st.nextToken());
        dp = new int[k+1][n+1];
        Arrays.fill(dp[1], 1);
        for(int i=1; i<=k; i++) dp[i][0] = 1;

        for(int i = 2; i<=k; i++){
            for(int j = 1; j<=n; j++){
                dp[i][j] = (dp[i-1][j]+ dp[i][j-1])%1000000000;
            }
        }
        System.out.println(dp[k][n]);
    }



    public static void main(String[] args) throws IOException {
        new Main().solution();
    }
}

이런 씽크빅 같은건 어떻게 해야 생각할 수 있는지 모르겠다.

다른 블로그를 참조했다. 사진 한장으로 모든 설명이 가능하다.

https://nahwasa.com/entry/%EB%B0%B1%EC%A4%80-2225-%EC%9E%90%EB%B0%94-%ED%95%A9%EB%B6%84%ED%95%B4-BOJ-2225-JAVA

 

반응형