본문 바로가기
알고리즘/BOJ

[Python] 백준 2688번: 줄어들지 않아

by PIAI 2021. 10. 13.

https://www.acmicpc.net/problem/2688

 

2688번: 줄어들지 않아

첫째 줄에 테스트 케이스의 개수 T(1 <= T <= 1,000)이 주어진다. 각 테스트 케이스는 숫자 하나 n으로 이루어져 있다. (1 <= n <= 64)

www.acmicpc.net

1. 처음시작이 0, 1, 2, 3, 4 ..., 9 이다. 2번째는 처음에 앞에 자릿수를 하나씩 늘려주면 0(0, 1, 2, 3, 4... 9), 1(1, 2, 3, 4... 9), 2(2, 3, 4... 9), ...., 9(9) 이다. 3번째는 마찬가지로 두번째 dp에 자릿수를 하나씩 늘려주면된다.

 

0 1 2 3 4 5 6 7 8 9
1 1 1 1 1 1 1 1 1 1
0 1 2 3 4 5 6 7 8 9
1 1 1 1 1 1 1 1 1 1
10 9 8 7 6 5 4 3 2 1
0 1 2 3 4 5 6 7 8 9
1 1 1 1 1 1 1 1 1 1
10 9 8 7 6 5 4 3 2 1
55 45 36 28 21 15 10 6 3 1
0 1 2 3 4 5 6 7 8 9
1 1 1 1 1 1 1 1 1 1
10 9 8 7 6 5 4 3 2 1
55 45 36 28 21 15 10 6 3 1
220 165 120 84 58 35 20 10 4 1
import sys
input = sys.stdin.readline

T = int(input())
while T:
    T -= 1
    n = int(input())
    dp = [[0 for _ in range(10)] for _ in range(n+1)]
    for i in range(1, n+1):
        dp[i][0] = max(1, sum(dp[i-1]))
        for j in range(1, 10):
            dp[i][j] = max(1, dp[i][j-1] - dp[i-1][j-1])
    print(sum(dp[n]))

'알고리즘 > BOJ' 카테고리의 다른 글

[Python] 백준 2616번: 소형기관차  (0) 2021.10.14
[Python] 백준 2482번: 색상환  (0) 2021.10.13
[Python] 백준 1958번: LCS 3  (0) 2021.10.07
[Python] 백준 17404번: RGB거리 2  (0) 2021.10.07
[Python] 백준 4811번: 알약  (0) 2021.10.07

댓글