File tree 1 file changed +47
-0
lines changed
1 file changed +47
-0
lines changed Original file line number Diff line number Diff line change
1
+ import java .io .BufferedReader ;
2
+ import java .io .IOException ;
3
+ import java .io .InputStreamReader ;
4
+
5
+ /**
6
+ * 백준 1563번 개근상
7
+ * - dp 사용
8
+ */
9
+
10
+ public class Main {
11
+ static final int MOD = 1000000 ;
12
+ public static void main (String [] args ) throws IOException {
13
+ BufferedReader br = new BufferedReader (new InputStreamReader (System .in ));
14
+ int N = Integer .parseInt (br .readLine ());
15
+
16
+ int [][][] dp = new int [N ][2 ][3 ];
17
+ dp [0 ][0 ][0 ] = 1 ; // 출석
18
+ dp [0 ][1 ][0 ] = 1 ; // 지각
19
+ dp [0 ][0 ][1 ] = 1 ; // 결석
20
+
21
+ for (int i = 1 ; i < N ; i ++) {
22
+ for (int j = 0 ; j < 2 ; j ++) {
23
+ for (int k = 0 ; k < 3 ; k ++) {
24
+ int value = dp [i - 1 ][j ][k ];
25
+
26
+ // 출석
27
+ dp [i ][j ][0 ] = (dp [i ][j ][0 ] + value ) % MOD ;
28
+
29
+ // 지각
30
+ if (j == 0 ) dp [i ][1 ][0 ] = (dp [i ][1 ][0 ] + value ) % MOD ;
31
+
32
+ // 결석
33
+ if (k < 2 ) dp [i ][j ][k + 1 ] = (dp [i ][j ][k + 1 ] + value ) % MOD ;
34
+ }
35
+ }
36
+ }
37
+
38
+ int answer = 0 ;
39
+ for (int i = 0 ; i < 2 ; i ++) {
40
+ for (int j = 0 ; j < 3 ; j ++) {
41
+ answer = (answer + dp [N - 1 ][i ][j ]) % MOD ;
42
+ }
43
+ }
44
+
45
+ System .out .println (answer );
46
+ }
47
+ }
You can’t perform that action at this time.
0 commit comments