백준 [2775] - 부녀회장이 될테야
문제
작성한 코드
import sys
input = sys.stdin.readline
T = int(input())
for i in range(T):
k = int(input())
n = int(input())
floor_0 = list()
for j in range(1, n+1):
floor_0.append(j)
for a in range(k):
counts = list()
for b in range(n):
counts.append(sum(floor_0[:b+1]))
floor_0 = counts
print(counts[-1])
- sys.stdin.readline을 input에 할당하여 사용한다.
- input()으로 문자를 입력받고, int형으로 형변환하여 T에 저장한다. (T는 테스트 케이스 개수)
- for i in range(T): T만큼 반복문 for문을 돌린다.
- for문을 돌릴 때마다, input()으로 문자를 입력받아, int형으로 형변환하여 k와 n에 저장한다. (k는 층, n은 호)
- 0층 사람들의 인원 수를 저장할 floor_0 리스트를 선언해준다.
- for j in range(1, n+1): 1부터 n까지 하나씩 floor_0에 append()로 추가해준다.
- for a in range(k): k만큼 반복문 for문을 돌린다. (0층 ~ k층 밑의 층까지)
- 1호부터 n호까지의 인원 합을 담을 list인 counts를 선언해준다.
- for b in range(n): n만큼 반복문 for문을 돌린다. (호수는 1부터지만 배열은 0부터 시작하기 때문에 0에서 n-1까지로 범위를 잡았다.)
- 슬라이싱을 통해 floor_0[:b+1] 만큼 sum()으로 합계를 구한 뒤, append()로 counts에 추가해준다.
- floor_0에 counts 리스트 값을 집어넣어 층을 높인 뒤, 다시 for문을 돌려 계산하게 된다.
- 마지막에는 counts의 마지막 값을 print()로 출력한다. ([-1] : 마지막 값)
'코딩테스트 > 백준' 카테고리의 다른 글
백준 [10757] - 큰 수 A+B (0) | 2022.08.25 |
---|---|
백준 [2839] - 설탕 배달 (0) | 2022.08.25 |
백준 [10250] - ACM 호텔 (0) | 2022.08.25 |
백준 [2869] - 달팽이는 올라가고 싶다 (0) | 2022.08.24 |
백준 [1193] - 분수찾기 (0) | 2022.08.24 |
댓글