[BOJ] 10844 쉬운 계단 수(다이나믹 프로그래밍)
1. 문제
https://www.acmicpc.net/problem/10844
2. 아이디어
DP[i][j] = DP[i-1][j-1] + DP[i-1][j+1]
3. 풀이과정
1) ⭕RIGHT⭕
- 코드
#include <iostream>
using namespace std;
#define mod 1000000000
int DP[101][10];
int main() {
int N;
long long ans = 0;
cin >> N;
for (int i = 1; i <= 9; ++i) DP[1][i] = 1;
for (int i = 2; i <= N; ++i)
for (int j = 1; j < 9; ++j)
{
DP[i][0] = DP[i - 1][1] % mod;
DP[i][j] = (DP[i - 1][j - 1] + DP[i - 1][j + 1]) % mod;
DP[i][9] = DP[i - 1][8] % mod;
}
for (int i = 0; i <= 9; ++i) ans += DP[N][i];
cout << ans % mod << '\n';
return 0;
}
- 코드 설명
- int DP[101][10]
N의 최대값이 100이므로 1~100까지의 인덱스를 쓸 수 있도록 하였고,
마지막 자릿수로 올 수 있는 숫자는 0~9이여서 이렇게 배열을 생성하였다.
- int DP[101][10]
Author And Source
이 문제에 관하여([BOJ] 10844 쉬운 계단 수(다이나믹 프로그래밍)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@pyh-dotcom/BOJ-10844-쉬운-계단-수저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)