PS(Problem Solving)
백준 11057번(오르막 수)
LiaLi_1997
2021. 11. 11. 10:22
백준 10844(쉬운 계단 수) 와 비슷한 문제이다.
핵심로직
1. 2차원 배열로 작은 조각에서 각각 접근해야 한다.
2. 점화식은 아래와 같다.
#include <iostream>
using namespace std;
int N;
long long dp[10][1001];
long long result;
int main(void) {
cin >> N;
for (int i = 0; i < 10; i++)
{
dp[i][1] = 1; // 초기값 셋팅
}
for (int x = 2; x <= N; x++)
{
for (int i = 0; i < 10; i++)
{
for (int j = 0; j <= i; j++)
{
dp[i][x] = (dp[i][x] + dp[j][x - 1])%10007;
}
}
}
for (int i = 0; i < 10; i++)
{
result = (result + dp[i][N])%10007;
}
cout << result;
return 0;
}