https://www.acmicpc.net/problem/2775
문제
평소 반상회에 참석하는 것을 좋아하는 주희는 이번 기회에 부녀회장이 되고 싶어 각 층의 사람들을 불러 모아 반상회를 주최하려고 한다.
이 아파트에 거주를 하려면 조건이 있는데, “a층의 b호에 살려면 자신의 아래(a-1)층의 1호부터 b호까지 사람들의 수의 합만큼 사람들을 데려와 살아야 한다” 는 계약 조항을 꼭 지키고 들어와야 한다.
아파트에 비어있는 집은 없고 모든 거주민들이 이 계약 조건을 지키고 왔다고 가정했을 때, 주어지는 양의 정수 k와 n에 대해 k층에 n호에는 몇 명이 살고 있는지 출력하라. 단, 아파트에는 0층부터 있고 각층에는 1호부터 있으며, 0층의 i호에는 i명이 산다.
소스코드
t = int(input())
for tc in range(t):
# 층수
floor = int(input())
# 호수
ho = int(input())
# 0층 나열(1부터 입력받은 호까지)
F0 = [x for x in range(1,ho+1)]
for k in range(floor):
for i in range(1,ho):
F0[i] += F0[i-1]
print(F0[-1])
소스코드 설명
1. 0층의 호에 대해 인라인 반복문을 통해 구현
2. 층만큼 반복문을 돌리며 내부 반복문을 통해 i에 해당하는 호의 인원수를 더함
'알고리즘' 카테고리의 다른 글
[백준] 10814- 나이순 정렬 (1) | 2023.11.02 |
---|---|
[백준] 14469 - 소가 길을 건너간 이유 3 (1) | 2023.10.31 |
[프로그래머스] 코딩테스트 입문 - 제곱수 판별하기(JAVA) (0) | 2023.09.05 |
[프로그래머스] 코딩테스트 연습 - 옷가게 할인 받기(JAVA) (0) | 2023.08.02 |
[프로그래머스] 코딩테스트 입문 - 피자 나눠 먹기 (1)(JAVA) (0) | 2023.08.01 |