728x90
300x250
쉬운 계단 수라면서 하나도 쉽지 않았다. 완전 어려운 계단 수임
n이 1~4일때의 경우의 수를 다적었다.
n==1
1
2
3
4
5
6
7
8
9
n==2
10 12
21 23
32 34
43 45
54 56
65 67
76 78
87 89
98
....
n자리의 수 중에 1로 시작하는 계단 수는 (n-1의 9로 시작하는 수+ n-1 2~7로 시작하는 수)
2~8로 시작하는 계단 수는 (n-1의 현재 시작수 +1 -1 ) ex. 3으로 시작하는 수라면 2와 4
9는 n-1의 8자리의 수이다.
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class Main {
public static int[][] dp;
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
dp = new int[n+1][10];
for (int i = 1; i < 10; i++) {
dp[1][i] = 1;
}
for (int i = 2; i <= n; i++) {
for (int j = 1; j < 10; j++) {
if(j==1)
dp[i][j] = (dp[i-1][9] + dp[i-1][7]) % 1000000000;
else if(j==9)
dp[i][j] = (dp[i-1][j-1]) %1000000000;
else
dp[i][j] = (dp[i-1][j+1] + dp[i-1][j-1]) %1000000000;
}
}
long res = 0;
for (int i = 0; i < 10; i++) {
res += dp[n][i];
}
System.out.println(res% 1000000000);
}
}
728x90
'알고리즘 > DP' 카테고리의 다른 글
백준 2193번: 이친수 [DP] - Java (0) | 2020.09.21 |
---|---|
백준 11057번: 오르막 수 [DP] - Java (0) | 2020.09.21 |
백준 9095번: 1, 2, 3 더하기 [DP] - Java (0) | 2020.09.16 |
백준 1003번: 피보나치 함수 [DP] - Java (0) | 2020.09.16 |
피보나치 수 - [DP] - Java (0) | 2020.09.13 |