반응형
문제
어떤 숫자가 줄어들지 않는다는 것은 그 숫자의 각 자리 수보다 그 왼쪽 자리 수가 작거나 같을 때 이다.
예를 들어, 1234는 줄어들지 않는다.
줄어들지 않는 4자리 수를 예를 들어 보면 0011, 1111, 1112, 1122, 2223이 있다. 줄어들지 않는 4자리수는 총 715개가 있다.
이 문제에서는 숫자의 앞에 0(leading zero)이 있어도 된다. 0000, 0001, 0002는 올바른 줄어들지 않는 4자리수이다.
n이 주어졌을 때, 줄어들지 않는 n자리 수의 개수를 구하는 프로그램을 작성하시오.
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#define size 1000001
int t, n;
long long dp[65][10] = { 0 };
int main()
{
for (int i = 0; i < 10; i++)
dp[1][i] = 1;
for (int i = 2; i <= 64; i++)
{
for (int j = 0; j < 10; j++)
{
for (int k = j; k < 10; k++)
{
dp[i][j] += dp[i - 1][k];
}
}
}
scanf("%d", &t);
while (t--)
{
scanf("%d", &n);
long long int s = 0;
for (int i = 0; i < 10; i++)
s += dp[n][i];
printf("%lld\n", s);
}
}
반응형
'Algorithm > BAEKJOON' 카테고리의 다른 글
[ C / C++ ] 백준 2739 구구단 (0) | 2022.03.19 |
---|---|
[ C / C++ ] 백준 2711 오타맨 고창영 (0) | 2022.03.18 |
[ C / C++ ] 백준 2630 색종이 만들기 (0) | 2022.03.16 |
[ C / C++ ] 백준 2609 최대공약수와 최소공배수 (0) | 2022.03.15 |
[ C / C++ ] 백준 2577 숫자의 개수 (0) | 2022.03.14 |