본문 바로가기

알고리즘/BOJ

[C++] 백준 11057번 - 오르막 수


0. 문제

 

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

 

1. 아이디어

 

1) 10844번과 동일한 아이디어. (여기선 자리수 이하의 모든 수가 가능하다는 점이 다름)

 

2. 소스코드

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <iostream>
#define MOD 10007
int main()
{
    int N, sum = 0;
    std::cin >> N;
 
    int dp[1001][10= { 0, };
 
    for (int i = 0; i < 10; i++)
        dp[1][i] = 1;
 
    for (int i = 2; i <= N; i++)
    {
        dp[i][0= dp[i - 1][0];
        for (int j = 1; j < 10; j++)
        {
            for (int k = j; k >= 0; k--)
                dp[i][j] = (dp[i][j] + dp[i - 1][k]) % MOD;
        }
    }
    for (int i = 0; i < 10; i++)
        sum = (sum + dp[N][i]) % MOD;
 
    std::cout << sum % MOD;
}
cs

 

3. 결과

 

4. 피드백

 

  • 배열 인덱스 항상 조심!