https://www.acmicpc.net/problem/2775
import sys
n = int(sys.stdin.readline())
for i in range(n):
people = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
k=int(sys.stdin.readline())
n = int(sys.stdin.readline())
for j in range(k):
for k in range(1,n):
people[k]+=people[k-1]
print(people[n-1])
0층에서부터 쌓아올라가는 구조이므로 0층 리스트를 먼저 선언한다.
이중배열을 사용하지 않고 1차원 리스트를 사용한 이유는
해당 인덱스에 바로 전 인덱스만 더해서 갱신하면 되기 때문이다.
현재 인덱스와 직전 인덱스만 중요하기 때문에 입력받은 n까지만 덧셈을 진행하고 위층으로 올라가면 된다.
반복문 상단에 리스트 초기화하는 것이 중요!
<층과 호를 입력받고 반복해야할 행동>
층만큼 반복 :
호만큼 반복 :
해당 인덱스와 전 인덱스 더하기
'자기개발👨💻 > 코딩 알고리즘' 카테고리의 다른 글
[Java] 백준 10809 알파벳 찾기 (0) | 2021.09.30 |
---|---|
[Java] 백준 11720 숫자의 합 (0) | 2021.09.28 |
[Java] 백준11654 아스키코드 (0) | 2021.09.28 |
[python] 백준10816 숫자 카드2 (0) | 2021.07.12 |
[python] 백준11866 요세푸스문제 0 (0) | 2021.07.12 |
[python] 백준2164 카드2 (0) | 2021.07.08 |