백준
[백준] 2775번 : 부녀회장이 될테야 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트
우당탕탕 개발자
2023. 7. 15. 18:32
728x90
반응형
2775번: 부녀회장이 될테야
첫 번째 줄에 Test case의 수 T가 주어진다. 그리고 각각의 케이스마다 입력으로 첫 번째 줄에 정수 k, 두 번째 줄에 정수 n이 주어진다
www.acmicpc.net
1. 문제 설명
2. 풀이과정
- sys.stdin.readline() 함수를 사용하기 위해 sys 모듈을 불러온다. import sys
- 테스트 케이스 개수를 입력받는다. T = int(sys.stdin.readline())
- 각 테스트 케이스 횟수만큼 반복하며 for _ in range(T)
- 층 수를 입력받고 k = int(sys.stdin.readline())
- 호 수를 입력받는다. n = int(sys.stdin.readline())
- 각 층과 호 수별 사람의 수를 리스트로 생성한다. n_people = list()
- 가장 기본이 되는 0층의 각 호 수별 사람의 수를 리스트로 묶어 추가한다. n_people.append(list(range(1, n + 1)))
- 다음 1층부터 입력받은 층까지 반복한다. for i in range(1, k + 1)
- 모든 층의 1호는 1명이 거주하므로 1을 리스트로 추가한다. n_people.append([1])
- 다음 호 수부터 입력받은 호까지 반복하며 for j in range(1, n)
- 해당 층의 호 수에 거주하는 사람의 수를 구하여 추가한다. 사람의 수는 같은 층의 앞 호의 사람 수와 같은 호의 아래층 사람의 수를 더하면 된다. n_people[i].append(n_people[i - 1][j] + n_people[i][j - 1])
- 입력받은 층의 호까지 사람의 수를 모두 구했으면 해당 층과 호의 사람 수를 출력한다. print(n_people[k][n - 1])
반응형
3. 소스코드
import sys
T = int(sys.stdin.readline())
for _ in range(T):
k = int(sys.stdin.readline())
n = int(sys.stdin.readline())
n_people = list()
n_people.append(list(range(1, n + 1)))
for i in range(1, k + 1):
n_people.append([1])
for j in range(1, n):
n_people[i].append(n_people[i - 1][j] + n_people[i][j - 1])
print(n_people[k][n - 1])
728x90
반응형