반응형
문제 설명
https://www.acmicpc.net/problem/2775
평소 반상회에 참석하는 것을 좋아하는 주희는 이번 기회에 부녀회장이 되고 싶어 각 층의 사람들을 불러 모아 반상회를 주최하려고 한다.
이 아파트에 거주를 하려면 조건이 있는데, “a층의 b호에 살려면 자신의 아래(a-1)층의 1호부터 b호까지 사람들의 수의 합만큼 사람들을 데려와 살아야 한다” 는 계약 조항을 꼭 지키고 들어와야 한다.
아파트에 비어있는 집은 없고 모든 거주민들이 이 계약 조건을 지키고 왔다고 가정했을 때, 주어지는 양의 정수 k와 n에 대해 k층에 n호에는 몇 명이 살고 있는지 출력하라. 단, 아파트에는 0층부터 있고 각층에는 1호부터 있으며, 0층의 i호에는 i명이 산다.
풀이 과정
먼저 0층 n호에는 n명이 살고 있으므로 0층은 [ 1, 2, 3, 4, 5... ]으로 설정을 해준다.
1층의 n호에는 0층 1호 ~ n호까지의 사람수만큼 살고 있으므로 sum(0층의 1호~n호)가 되며
2층의 n호에는 1층 1호 ~ n호까지의 사람수만큼 살고 있으므로 sum(1층의 1호~n호)가 된다.
이렇게 1층부터는 이전층의 사람수들을 누적으로 합해감을 알 수 있다.
이를 파이썬으로 나타낸 코드는 다음과 같다.
t = int(input())
for _ in range(t):
k = int(input())
n = int(input())
graph = [[0]*n for _ in range(k+1)]
graph[0] = [i+1 for i in range(n)]
for i in range(1, k+1):
for j in range(n):
graph[i][j] = sum(graph[i-1][:j+1])
print(graph[k][n-1])
전체 문제 & 코드는 위의 깃에 정리되어 있습니다.
팔로우 & 맞팔은 환영입니다 !
반응형
'Algorithm > Implementation' 카테고리의 다른 글
[백준] 1978 소수 찾기 (Python 파이썬) (0) | 2021.10.01 |
---|---|
[백준] 1011 Fly me to the Alpha Centauri (Python 파이썬) (0) | 2021.10.01 |
[백준] 10250 ACM 호텔 (Python 파이썬) (0) | 2021.10.01 |
[백준] 1110 더하기 사이클 (Python 파이썬) (0) | 2021.10.01 |
[프로그래머스] 수식 최대화 (Python 파이썬) (0) | 2021.05.04 |