알고리즘

[백준/DP/C++] 10844번 쉬운 계단 수

데메즈 2022. 12. 24. 20:00
728x90
반응형

https://www.acmicpc.net/problem/10844

10844번: 쉬운 계단 수

첫째 줄에 정답을 1,000,000,000으로 나눈 나머지를 출력한다.

www.acmicpc.net

#include <bits/stdc++.h>

using namespace std;
int n;
int dp[101][10]={};
#define mod 1000000000;

int main(void) {
    cin >> n;

    dp[1][0] = 0;
    for(int i=1; i<10; i++){ // 쉬운 계단수가 한자리인 경우 1로 초기화
        dp[1][i] = 1;
    }

    for(int i=2; i<=n; i++){
        dp[i][0] = dp[i-1][1]; // 마지막수가 0인 경우
        dp[i][9] = dp[i-1][8]; // 마지막수가 9인경우
        for(int j=1; j<9; j++){
            dp[i][j] = (dp[i-1][j-1] + dp[i-1][j+1])%mod;
        }
    }

    int result = 0;
    for(int i=0; i<10; i++){
        result = (result + dp[n][i])%mod;
    }
    cout << result << endl;

    return 0;
}
728x90
반응형