๋ฌธ์ (์ถ์ฒ: https://www.acmicpc.net/problem/10844)
< ์ฌ์ด ๊ณ๋จ ์ >
๋ฌธ์ ํ์ด
์๋ฆฟ์๊ฐ ๋์ด๋ ์๋ก ์ด์ ์๋ฆฟ์์ ์ํ๋ฅผ ์ด์ฉํ ์ ์์ผ๋ฏ๋ก DP ์ฌ์ฉํ๋ค.
my solution (Java)
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class _10844_ { // ์ฌ์ด ๊ณ๋จ ์
public static void main(String[] args) throws IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(bf.readLine());
int dp[][] = new int[n + 1][10];
for (int i = 1; i < 10; i++) {
dp[1][i] = 1;
}
for (int i = 2; i < n + 1; i++) {
for (int j = 0; j < 10; j++) {
if (j != 9) {
dp[i][j] = (dp[i][j] + dp[i - 1][j + 1]) % 1000000000;
}
if (j != 0) {
dp[i][j] = (dp[i][j] + dp[i - 1][j - 1]) % 1000000000;
}
}
}
int result = 0;
for (int i = 0; i < 10; i++) {
result = (result + dp[n][i]) % 1000000000;
}
System.out.println(result);
}
}
๋ณ์)
n : ์ ๋ ฅ๊ฐ
dp : 1~N์ธ ๊ณ๋จ ์
result : ๊ธธ์ด๊ฐ N์ธ ๊ณ๋จ ์
n์ ์ ๋ ฅ๋ฐ๋๋ค. 1 ์๋ฆฟ์์ผ ๋๋ ๊ฐ ๊ฒฝ์ฐ์ ์๊ฐ 1๊ฐ์ด๋ฏ๋ก dp[1][1~9]๋ฅผ 1๋ก ์ด๊ธฐํํ๋ค. ๋ค์ ์๋ฆฟ์๋ถํฐ๋ ํ์ฌ ๊ฐ์ -1, +1์ ํด๋นํ๋ ๊ฐ์ ๋ํด์ผ ํ๋ค. ์ด๋, 0๊ณผ 9์ผ ๋๋ฅผ ์ฃผ์ํ๋ค.
์ต์ข dp[n][0~9] ๊ฐ์ ๋ํด ์ถ๋ ฅํ๋ค.

'๐Algorithm > ๐ฅBaekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [Baekjoon] 2688_์ค์ด๋ค์ง ์์ (0) | 2026.01.12 |
|---|---|
| [Baekjoon] 9711_ํผ๋ณด๋์น (0) | 2026.01.09 |
| [Baekjoon] 1965_์์๋ฃ๊ธฐ (0) | 2026.01.08 |
| [Baekjoon] 2294_๋์ 2 (0) | 2026.01.07 |
| [Baekjoon] 11054_๊ฐ์ฅ ๊ธด ๋ฐ์ดํ ๋ ๋ถ๋ถ ์์ด (0) | 2026.01.06 |