Skip to content

Commit 42dd5a5

Browse files
authored
Create BJ_1563_개근상.java
1 parent 62ba810 commit 42dd5a5

File tree

1 file changed

+47
-0
lines changed

1 file changed

+47
-0
lines changed

250428/BJ_1563_개근상.java

+47
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
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+
}

0 commit comments

Comments
 (0)