https://www.acmicpc.net/problem/2775
2775번: 부녀회장이 될테야
첫 번째 줄에 Test case의 수 T가 주어진다. 그리고 각각의 케이스마다 입력으로 첫 번째 줄에 정수 k, 두 번째 줄에 정수 n이 주어진다
www.acmicpc.net
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
Python - List Comprehension
W3Schools offers free online tutorials, references and exercises in all the major languages of the web. Covering popular subjects like HTML, CSS, JavaScript, Python, SQL, Java, and many, many more.
www.w3schools.com
#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 중 가장 마지막 값을 출력하면 답이다.
'파이썬알고리즘' 카테고리의 다른 글
백준 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 |