쉬운 계단 수
D[N] : N의 계단 수인지 아닌지
S[N] : N의 자리수
D[N] = D[S[0] + S[1]] || D[S[1] + S[2]] || D[S[n-2] + S[n-1]]
// D[N]이 true면 cnt++;? ? L+1 | L-1 L
[1][2]... [N-1] [N]Summary
Last updated
Was this helpful?
D[N] : N의 계단 수인지 아닌지
S[N] : N의 자리수
D[N] = D[S[0] + S[1]] || D[S[1] + S[2]] || D[S[n-2] + S[n-1]]
// D[N]이 true면 cnt++;? ? L+1 | L-1 L
[1][2]... [N-1] [N]Last updated
Was this helpful?
Was this helpful?
long long dp[101][10];
long long n;
cin>>n;
long long size = n;
long long mod = 1000000000;
// fill_n(dp, size, 0); // 0: 미정, 1: true, -1: false
for(int i = 1; i<=9; i++) {
dp[1][i] = 1;
}
for(int i = 2; i<=size; i++) {
for(int j = 0; j<=9; j++) {
dp[i][j] = 0;
if(j-1>=0) {
dp[i][j] += dp[i-1][j-1];
}
if(j+1<=9) {
dp[i][j] += dp[i-1][j+1];
}
dp[i][j] %= mod;
}
}
long long result = 0;
for(int i = 0; i<=9; i++) {
result += dp[size][i];
}
cout<<result % mod<<endl;