본문 바로가기
코딩테스트/백준 알고리즘

백준 알고리즘 | 2775 : 부녀회장이 될테야 (Python / 파이썬)

by 함께 공부해요 2020. 9. 23.

 


부녀회장이 될테야 성공분류

시간 제한

메모리 제한

제출

정답

맞은 사람

정답 비율

1 초

128 MB

25292

14248

12517

57.534%

https://www.acmicpc.net/problem/2775

 

2775번: 부녀회장이 될테야

첫 번째 줄에 Test case의 수 T가 주어진다. 그리고 각각의 케이스마다 입력으로 첫 번째 줄에 정수 k, 두 번째 줄에 정수 n이 주어진다. (1 <= k <= 14, 1 <= n <= 14)

www.acmicpc.net


문제

평소 반상회에 참석하는 것을 좋아하는 주희는 이번 기회에 부녀회장이 되고 싶어 각 층의 사람들을 불러 모아 반상회를 주최하려고 한다.

이 아파트에 거주를 하려면 조건이 있는데, “a층의 b호에 살려면 자신의 아래(a-1)층의 1호부터 b호까지 사람들의 수의 합만큼 사람들을 데려와 살아야 한다” 는 계약 조항을 꼭 지키고 들어와야 한다.

아파트에 비어있는 집은 없고 모든 거주민들이 이 계약 조건을 지키고 왔다고 가정했을 때, 주어지는 양의 정수 k와 n에 대해 k층에 n호에는 몇 명이 살고 있는지 출력하라. 단, 아파트에는 0층부터 있고 각층에는 1호부터 있으며, 0층의 i호에는 i명이 산다.

입력

첫 번째 줄에 Test case의 수 T가 주어진다. 그리고 각각의 케이스마다 입력으로 첫 번째 줄에 정수 k, 두 번째 줄에 정수 n이 주어진다. (1 <= k <= 14, 1 <= n <= 14)

출력

각각의 Test case에 대해서 해당 집에 거주민 수를 출력하라.

알고리즘 분류

수학

조합론


 

백준 알고리즘 # 2775번 : 부녀회장이 될테야

t = int(input())                        # t = 2

for _ in range(t):
    k = int(input())                    # k = 1, 2
    n = int(input())                    # n = 3, 3
    num = [i for i in range(1, n + 1)]  # [1, 2, 3], [1, 2, 3]
    for _ in range(k):
        for i in range(1, n):
            num[i] += num[i - 1]        # [1, 3, 6] -> [1, 4, 10]
    print(num[-1])

풀이

3층

1

5

15

35

2층

1

4

10

20

1층

1

3

6

10

0층

1

2

3

4

.

1호

2호

3호

4호

위와 같이 0층부터 num[i][j] = num[i-1][j] + num[i][j-1]의 규칙이 있다는 것을 알고

변수 t를 설정해서 테스트 케이스의 수를 입력 받고, 그 수만큼 for문을 돌리고

변수 k로 층을 입력받고, n으로 호를 입력받았다.

다음으로 0층을 나타내는 변수 num를 설정해서 규칙이 시작되는 [1, 2, 3]을

1부터 n까지 돌려 [1, 2, 3], [1, 2, 3] 두 개를 만들었다.

그리고 for문을 사용해서 층을 나타내는 변수 k 반복하고

그 안에 이중 for문으로 1호를 제외한 2호, 3호, 4호 .. 을 바꾸기 위해서

num[i] = num[i] + num[i - 1]

위와 같이 "1호부터 b호까지 사람들의 수의 합만큼"의 조건을 충족시킬 수 있는 코드를 짰다.

테스트 케이스에 해당하는 층(k)의 맨 마지막 수인 num[-1]을 출력하면

구하고자 하는 결과가 for문을 돌며 각각 나오면서 풀이 끄--읏👏

세한 코드가 궁금하신 분들은 아래 GitHub 참고해주세요🙏

 

wook2124/Algorithm

Practice algorithm. Contribute to wook2124/Algorithm development by creating an account on GitHub.

github.com

최종 소스코드

댓글