Skip to content

Commit cc6598a

Browse files
authored
Merge pull request #376 from AlgorithmWithGod/lkhyun
[20250621] BOJ / G1 / 계단 수 / 이강현
2 parents 5e4ca76 + 0bb944a commit cc6598a

File tree

1 file changed

+45
-0
lines changed

1 file changed

+45
-0
lines changed
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
```java
2+
import java.io.*;
3+
import java.util.*;
4+
5+
public class Main {
6+
static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
7+
static BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
8+
static StringTokenizer st;
9+
static int N;
10+
static int[][][] dp;
11+
static int MOD = 1000000000;
12+
13+
public static void main(String[] args) throws IOException {
14+
N = Integer.parseInt(br.readLine());
15+
//dp[자릿수][끝자리수][포함관계]
16+
dp = new int[N+1][10][1024];
17+
for (int i = 1; i <= 9; i++) {
18+
dp[1][i][1<<i] = 1;
19+
}
20+
21+
for (int i = 2; i <= N; i++) {
22+
for (int j = 0; j <= 9; j++) {
23+
for (int k = 0; k < (1<<10); k++) {
24+
if(j>0 && dp[i-1][j-1][k] > 0){
25+
dp[i][j][k | 1<<j] += dp[i-1][j-1][k];
26+
dp[i][j][k | 1<<j] %= MOD;
27+
}
28+
if(j<9 && dp[i-1][j+1][k] > 0){
29+
dp[i][j][k | 1<<j] += dp[i-1][j+1][k];
30+
dp[i][j][k | 1<<j] %= MOD;
31+
}
32+
}
33+
}
34+
}
35+
int sum = 0;
36+
for (int i = 0; i <= 9; i++) {
37+
sum += dp[N][i][1023];
38+
sum %= MOD;
39+
}
40+
bw.write(sum + "\n");
41+
bw.close();
42+
}
43+
44+
}
45+
```

0 commit comments

Comments
 (0)