https://www.acmicpc.net/problem/2775
Code
case = int(input())
for _ in range(case):
floor = int(input())
ho = int(input())
f_0 = [x for x in range(1, ho+1)]
for _ in range(floor):
for i in range(1, ho):
f_0[i] += f_0[i-1]
print(f_0[-1])
#1 Key Code
f_0 = [x for x in range(1, ho+1)]
Python List comprehension을 이용해 숫자 List를 생성해준다
ex) ho가 10일 때 f_0 = [1,2,3,4,5,6,7,8,9,10]
List comprehension Examples
https://www.w3schools.com/python/python_lists_comprehension.asp
#2 Key code
for _ in range(floor):
for i in range(1, ho):
f_0[i] += f_0[i-1]
생성한 List에 층이 올라갈수록 변하는 값을 경신시켜준다. 변화하는 과정을 보기 쉽게 정리해보자.
f_0 초기상태 [1,2,3,4,5]
When i = 1 f_0[1] += f_0[0] f_0 = [1,3,6,10,15] |
When i = 2 f_0[2] += f_0[1] f_0 = [1,4,10,20,35] |
When i = 3 f_0[3] += f_0[2] f_0 = [1,5,15,35,70] |
입력한 floor와 ho만큼의 list가 생성될 것이기 때문에
list 중 가장 마지막 값을 출력하면 답이다.
728x90
'파이썬알고리즘' 카테고리의 다른 글
백준 2805 파이썬 (0) | 2023.12.21 |
---|---|
백준 6603 파이썬 (0) | 2023.02.06 |
Baekjoon 5355 Python (0) | 2022.11.19 |
백준 10816 파이썬 (0) | 2022.05.26 |
백준 10250 파이썬 (0) | 2022.05.15 |