본문 바로가기
(구) 자료/Baekjoon Online Judge

[DP] 백준 #2225 / 합분해

by 뜐뜐뜐 2017. 12. 1.




문제는 위와 같다. 처음엔 초 난감... 했는데 스티커 메모장에다가 이렇게 적어보면서 정리해봤다.


그렇다. 생각보다 단순한 문제였다. 이중 DP배열이 필요하고, 그림으로 나타내면 다음과 같이 나타낼 수 있다.



(i , j) 좌표의 값을 구하려면, (i, j-1) + (i-1, j) 값이 필요하다. 너무 쉬운 문제라서 더 이상의 설명은 생략해도 될법하다.


라고는 했으나 사실 틀렸었는데, Output 조건을 잘 보면, 답을 1,000,000,000로 나눈 나머지라고 했으니까 이런 조건좀 빼먹지 말자.


[Code]



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import java.util.Scanner;
public class boj_2225 {
    public static void main(String args[]){
        Scanner sc = new Scanner(System.in);
        
        int N = sc.nextInt();
        int K = sc.nextInt();
        int dp[][] = new int[201][201];
        
        for(int i=1;i<=K;i++
            dp[0][i] = 1;
        for(int i=1;i<=N;i++) {
            for(int j=1;j<=K;j++) {
                dp[i][j] = (dp[i][j-1]+ dp[i-1][j])%1000000000;
            }
        }
        System.out.println(dp[N][K]);
    }
}
 
cs