백준/다이나믹 프로그래밍
# 2688 줄어들지 않아
bright_code
2020. 9. 14. 12:10
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
반응형