알고리즘/PS
[C++] 백준 10844 : 쉬운 계단 수
BigmacGood
2022. 4. 2. 12:07
https://www.acmicpc.net/problem/10844
10844번: 쉬운 계단 수
첫째 줄에 정답을 1,000,000,000으로 나눈 나머지를 출력한다.
www.acmicpc.net
백준 10844번 쉬운 계단 수를 풀어봤습니다.
동적계획법 문제이고 bottom-up, top-down 두 가지 방식으로 풀 수 있습니다.
아래는 전체 코드입니다.
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
#define MOD 1000000000
int N;
int arr[100][10];
int dp(int n, int k) {
if (k < 0 || k>9)
return 0;
if (arr[n][k] != 0)
return arr[n][k];
if (n == 0) {
if (k == 0)
return 0;
else {
arr[0][k] = 1;
return arr[0][k];
}
}
arr[n][k] = dp(n - 1, k - 1) % MOD + dp(n - 1, k + 1) % MOD;
return arr[n][k];
}
int main() {
cin >> N;
long long result = 0;
for (int i = 0; i < 10; i++) {
result += dp(N - 1, i);
}
cout << result % MOD;
return 0;
}