[Python]BaekJoon.AC
[Python]백준 BaekJoon.AC 2775 : 부녀회장이 될테야(2차원 리스트)
스뇨잉
2022. 1. 6. 01:27
728x90
728x90
https://www.acmicpc.net/problem/2775
2775번: 부녀회장이 될테야
첫 번째 줄에 Test case의 수 T가 주어진다. 그리고 각각의 케이스마다 입력으로 첫 번째 줄에 정수 k, 두 번째 줄에 정수 n이 주어진다
www.acmicpc.net
이번 문제는 2차원 리스트를 시도해봤다!
리스트 안에 리스트를 넣는다고 말할 수 있다.
(이 문제에서 그러진 않았지만, 열마다 행의 개수를 자유자재로 설정할 수 있음은 정말 큰 편리함이다.)
바깥 리스트를 층수, 안쪽 리스트를 호라고 설정해줬다.
리스트를 생성하고 먼저 for문을 이용해 0층 사람수를 깔아줬다.(k)
0층부터 flo층까지 있고, 0호부터 uni-1호까지 있는 셈이다.
그러나 0호를 1호로 생각하기로 하는, 그런 리스트 형식이다. 따라서 uni-1호가 uni호다.
그리고 1부터 입력된 층수까지 훑는 for문(m)을 생성하고, 내부엔 그 층마다 호를 방문해주는 for문(n)을 만들었다.
한집씩 훑을 때마다 밑층 사람 수와 직전 집 사람 수를 더해줬다.
이때, 1호는 무조건 1의 값을 가지고 직전 집이 없으니 1을 그냥 넣어준다.
T = int(input())
for i in range(T):
flo = int(input())
uni = int(input())
list = [[]]
for k in range(1, uni+1):
list[0].append(k)
for m in range(1, flo+1):
list.append([])
for n in range(uni):
if n == 0:
list[m].append(1)
else:
list[m].append(list[m-1][n] + list[m][n-1])
print(list[flo][uni-1])
728x90
728x90