코딩일지/python 백준 알고리즘

python 백준 알고리즘 2275번: 부녀회장이 될테야

야언 2022. 9. 14. 19:58

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

 

2775번: 부녀회장이 될테야

첫 번째 줄에 Test case의 수 T가 주어진다. 그리고 각각의 케이스마다 입력으로 첫 번째 줄에 정수 k, 두 번째 줄에 정수 n이 주어진다

www.acmicpc.net

 

3층: 1  5 15 35 70

2층: 1  4 10 20 35 

1층: 1  3  6  10 15

0층: 1  2  3   4   5

딱히 동일한 규칙성이 보이지 않아 주어진 조건을 그대로 로직으로 구현해야할듯.

 

 

내 제출

t = int(input())  # test case

for _ in range(t):  # t만큼 반복
    floor = int(input())  # 층
    num = int(input())  # 호
    people = [x for x in range(1, num+1)]  # 0층
    
    for _ in range(floor):  # 층만큼 반복
        new = []
        for i in range(num):  # 0~num-1까지 (아랫층)
            new.append(sum(people[:i+1]))   # 아래층의 1~n호 까지의 합
        people = new.copy()
        
    print(people[-1])       # K층 n호

 

조건을 충족하는 로직을 짜는데 어려움을 겪어 구글링의 도움을 받았다. 이해는 했는데 처음부터 저렇게 짜기는 겁나게 어려울듯