문제 접근
2차원 배열 사용해서 점화식 도출
풀이
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class S10844 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
long[][] dp = new long[N + 1][10];
long cnt = 0;
long mod = 1_000_000_000;
dp[1][0] = 0;
for (int i = 1; i <= 9; i++) {
dp[1][i] = 1;
}
for (int i = 2; i <= N; i++) {
for (int j = 0; j <= 9; j++) {
if (j == 0) {
dp[i][j] = (dp[i - 1][j + 1]) % mod;
} else if (j == 9) {
dp[i][j] = (dp[i - 1][j - 1]) % mod;
} else {
dp[i][j] = (dp[i - 1][j - 1] + dp[i - 1][j + 1]) % mod;
}
}
}
for (int i = 0; i <= 9; i++) {
cnt += dp[N][i];
}
System.out.println(cnt % mod);
}
}
'Algorithm' 카테고리의 다른 글
DP / 백준 11053 가장 긴 증가하는 부분 수열 (0) | 2025.05.19 |
---|---|
DP / 백준 2193 이친수 (0) | 2025.05.19 |
DP / 백준 15990 1,2,3 더하기 5 (0) | 2025.05.18 |
DP / 백준 11052 카드 구매하기 2 (0) | 2025.05.18 |
DP / 백준 11052 카드 구매하기 (0) | 2025.05.18 |