반응형
문제
https://www.acmicpc.net/problem/2775
2775번: 부녀회장이 될테야
첫 번째 줄에 Test case의 수 T가 주어진다. 그리고 각각의 케이스마다 입력으로 첫 번째 줄에 정수 k, 두 번째 줄에 정수 n이 주어진다
www.acmicpc.net
코드
t = int(input())
for _ in range(t):
k = int(input())
n = int(input())
people = [i for i in range(1, n+1)]
for _ in range(k):
for x in range(1, n):
people[x] += people[x-1]
print(people[-1])
설명
문제가 직관적으로 이해하기 어려웠는데 그림을 그려서 생각하니까 조금 편했다.
0층에는 [1, 2, 3, 4,...] 이런 식으로 사람이 살고,
1층에는 [1, 3, 6, 10, ...]
2층에는 [1, 4, 10, 20,...] 이런 식으로 아래층의 자신의 호수만큼의 사람이 살아야 한다는 조건이다.
문제를 풀기 위해 우선 people이라는 리스트를 만들어 각 층의 사람을 배치해주었다.
이렇게 되면 0층의 리스트가 완성된다.
이후 k번 동안 이 리스트에 변화를 주게 되는데,
x번째에 있는 수에 x-1번째의 수를 더해주게 된다.
예를 들어 1층을 만들기 위해 2였던 기존의 2호에 1을 더해 3을 만들어주고,
3이었던 기존의 3호에 3을 더해 6을 만드는 식이다.
이렇게 k 번 반복하고 가장 마지막 수를 출력하면 된다.
반응형
'개발 연습장 > 백준 문제풀이' 카테고리의 다른 글
[파이썬, Python] 백준 10757: 큰 수 A+B (0) | 2022.12.21 |
---|---|
[파이썬, Python] 백준 2839: 설탕 배달 (0) | 2022.12.18 |
[파이썬, Python] 백준 10250: ACM 호텔 (0) | 2022.12.16 |
[파이썬, Python] 백준 2869: 달팽이는 올라가고 싶다 (0) | 2022.12.15 |
[파이썬, Python] 백준 1193: 분수찾기 (0) | 2022.12.14 |