티스토리 뷰
#include <stdio.h>
int memo[10][1001];
int step(int n, int start)
{
int i;
int ret = 0;
if (n == 1)
return 1;
if (memo[start][n] != 0)
return memo[start][n];
for (i = start; i <= 9; i++) {
ret += step(n - 1, i);
ret %= 10007;
}
memo[start][n] = ret % 10007;
return memo[start][n];
}
int main(void)
{
int i, n;
int result = 0;
scanf("%d", &n);
for (i = 0; i < 10; i++) {
result += step(n, i);
result %= 10007;
}
printf("%d", result);
return 0;
}
쉬운 계단 수 코드에서 배열 크기, 재귀하는 부분, 0부터 시작, mod 숫자만 바꿨다.
'프로그래밍 > 문제풀이' 카테고리의 다른 글
[BOJ] 10971 외판원 순회2 (0) | 2020.05.15 |
---|---|
[BOJ] 11051 이항 계수 2 (0) | 2020.02.28 |
[BOJ] 10844 쉬운 계단 수 (0) | 2020.02.27 |
[BOJ] 9465 스티커 (0) | 2020.02.21 |
[프로그래머스] 단어 변환 (0) | 2020.02.11 |
댓글