본문 바로가기

알고리즘

python 백준2775 부녀회장이 될테야(BOJ2775)

문제링크 : https://www.acmicpc.net/problem/2775

 

2775번: 부녀회장이 될테야

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

www.acmicpc.net

간단한 dp문제인데

시간제한 1초에 층수 호수도 14층뿐이라 O(n^3)= 14세제곱 이어도 충분하길래 그냥 인원수 싹 다 구하고나서

결과값 출력했다.

인원수를 구하면서 한방에 리턴하는 방법으로도 할수있을것이다 

내가 제출 한 코드

import sys

input = sys.stdin.readline
#테스트 케이스
t = int(input())
#층수 리스트
k_list = []
#호수 리스트
n_list = []

#입력
for _ in range(t):
  k_list.append(int(input()))
  n_list.append(int(input()))

#아파트 층수 0층~14층
a = [[] for _ in range(15)]

#0층 인원
for i in range(1,15):
  a[0].append(i)

#아파트에 들어가야될 모든 사람 수 계산
for i in range(1,15):
  for j in range(1, 15):
    people = 0
    for k in range(0, j):
      people += a[i-1][k]
    a[i].append(people)
#출력. 층수는 0층부터지만 호수는 1호부터시작이기때문에 호수-1
for i in range(t):
  print(a[k_list[i]][n_list[i]-1])