문제 링크
https://www.acmicpc.net/problem/2775
2775번: 부녀회장이 될테야
첫 번째 줄에 Test case의 수 T가 주어진다. 그리고 각각의 케이스마다 입력으로 첫 번째 줄에 정수 k, 두 번째 줄에 정수 n이 주어진다
www.acmicpc.net
풀이
사람 수가 누적되므로
k층의 1호는 k-1층의 1호 사람 수 이고
k층의 2보다 큰 n호까지는 ( k층의 n-1호의 사람 수 ) + ( k-1층의 n호 사람 수 )이다.
test = int(input())
for _ in range(test):
k = int(input())
n = int(input())
# 0층부터 k층까지 있고 각 층마다 n호
num = [ [0] * n for _ in range(k+1)]
# 1호부터 시작하고 0층의 경우 i호에 i명 거주
for i in range(n):
num[0][i] = i + 1
# 1층부터 k층까지
for i in range(1, k+1):
# 층별 각 호마다 반복
for j in range(n):
# 1호면 전 층의 1호 사람 수
if j == 0:
num[i][j] = num[i-1][0]
# 1호가 아니면 전 호수의 사람 수 + 전 층의 해당 호수 사람 수
else :
num[i][j] = num[i][j-1] + num[i-1][j]
print(num[k][n-1])
'개발 > algorithm' 카테고리의 다른 글
[백준 2805번] 나무 자르기 - python (0) | 2022.02.12 |
---|---|
[백준 2798번] 블랙잭 - python (0) | 2022.02.12 |
[백준 2609번] 최대공약수와 최소공배수 - python (0) | 2022.02.12 |
[백준 2164번] 카드2 - python (0) | 2022.02.12 |
[백준 1978번] 소수 찾기 -python (0) | 2022.02.12 |