File tree Expand file tree Collapse file tree 1 file changed +33
-0
lines changed
Expand file tree Collapse file tree 1 file changed +33
-0
lines changed Original file line number Diff line number Diff line change 1+ ``` java
2+ import java.util.* ;
3+
4+ public class Main {
5+ final static int MOD = 1_000_000_003 ;
6+ public static void main (String [] args ) {
7+ Scanner sc = new Scanner (System . in);
8+
9+ int N = sc. nextInt();
10+ int K = sc. nextInt();
11+
12+ // dp[i][j] = i번째 색상까지 고려하여 j개를 뽑는 경우의 수
13+ int [][] dp = new int [N + 1 ][K + 1 ];
14+ for (int i = 1 ; i < N + 1 ; i++ ) {
15+ dp[i][0 ] = 1 ;
16+ dp[i][1 ] = i;
17+ }
18+ for (int i = 3 ; i < N ; i++ ) {
19+ for (int j = 2 ; j < K + 1 ; j++ ) {
20+ dp[i][j] = (dp[i- 1 ][j] + dp[i- 2 ][j- 1 ]) % MOD ;
21+ }
22+ }
23+ // 마지막 색상 처리
24+ // dp[N - 2- 1][K-1] = 1번 색상을 제외하고 N-2 색상까지 K-1개의 색을 겹치지 않게 칠하는 경우
25+ dp[N ][K ] = (dp[N - 2 - 1 ][K - 1 ] + dp[N - 1 ][K ]) % MOD ;
26+
27+ int answer = dp[N ][K ];
28+ System . out. println(answer);
29+
30+ sc. close();
31+ }
32+ }
33+ ```
You can’t perform that action at this time.
0 commit comments