공부 자료/알고리즘

(Python/파이썬) 백준 2688번 - 줄어들지 않아

뚜루뚜루세니 2021. 9. 24. 19:49
728x90

문제출처: https://www.acmicpc.net/problem/2688

 

2688번: 줄어들지 않아

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

www.acmicpc.net

1. 해결과정

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import sys 
input = sys.stdin.readline 
 
= int(input())
 
for i in range(T):
    N = int(input()) 
    num = [1 for i in range(10)] 
 
    #2자리 수에 0,1,2 넣을 때 가능한 것이 00 01 11 02 12 22
    #3자리 수에서 2가 들어가는 경우 002 012 112 022 122 222 
    # 즉 각 배열의 현재 인덱스 이상의 원소 값 모두 더해주면 된다.
 
    for i in range(N-1):
        for j in range(10):
            num[j] = sum(num[j:])
    print(sum(num))
 
cs

예를 들어서 0,1,2 를 2자리 수에 배치한다고 했을 때 가능한것이 00 01 11 02 12 22 이고

3자리 수에 2가 들어가는 경우는 002 012 112 022 122 222로 

각 배열의 현재 인덱스 이상의 원소값들을 더해주면 되는 부분이라고 이해할 수 있다.

 

 

728x90