728x90
반응형
def no_reduce(n):
dp = [ [0]*10 for _ in range(n) ]
dp[0] = [1]*10
for i in range(1,n):
#dp[i][0] = dp[i-1][0]
for j in range(0,10):
for k in range(j+1):
dp[i][j] += dp[i-1][k]
print(sum(dp[n-1]))
t = int(input())
data = [0]*t
for i in range(t):
data[i] = int(input())
for i in data:
no_reduce(i)
1 자리 인 경우 0~9 까지 1개씩 가능함. -> dp[0] = [1]*10
2 자리 이상인 경우,
1자리 작은 경우의 수에서, 나보다 작거나 같은 수가 나오는 경우 만큼 내가 나올 수 있다.
ex )
3자리 숫자 중, 숫자 2가 마지막에 오는 경우의 수 = 2자리에서 ( 0이 오는 경우의 수 + 1이 오는 경우의 수 + 2가 오는 경우의 수 )
728x90
반응형
'백준 > 다이나믹 프로그래밍' 카테고리의 다른 글
# 12865 평범한 배낭 - (0) | 2020.09.14 |
---|---|
# 2502 떡 먹는 호랑이 (0) | 2020.09.14 |
# 9656 돌 게임 2 (0) | 2020.09.14 |
# 11055 가장 큰 증가 부분 수열 (0) | 2020.09.14 |
# 1699 제곱수의 합 - (0) | 2020.09.13 |