https://www.acmicpc.net/problem/2775
2775번: 부녀회장이 될테야
첫 번째 줄에 Test case의 수 T가 주어진다. 그리고 각각의 케이스마다 입력으로 첫 번째 줄에 정수 k, 두 번째 줄에 정수 n이 주어진다
www.acmicpc.net
평소 반상회에 참석하는 것을 좋아하는 주희는 이번 기회에 부녀회장이 되고 싶어 각 층의 사람들을 불러 모아 반상회를 주최하려고 한다.
이 아파트에 거주를 하려면 조건이 있는데, “a층의 b호에 살려면 자신의 아래(a-1)층의 1호부터 b호까지 사람들의 수의 합만큼 사람들을 데려와 살아야 한다” 는 계약 조항을 꼭 지키고 들어와야 한다.
아파트에 비어있는 집은 없고 모든 거주민들이 이 계약 조건을 지키고 왔다고 가정했을 때, 주어지는 양의 정수 k와 n에 대해 k층에 n호에는 몇 명이 살고 있는지 출력하라. 단, 아파트에는 0층부터 있고 각층에는 1호부터 있으며, 0층의 i호에는 i명이 산다.
첫 번째 줄에 Test case의 수 T가 주어진다. 그리고 각각의 케이스마다 입력으로 첫 번째 줄에 정수 k, 두 번째 줄에 정수 n이 주어진다
각각의 Test case에 대해서 해당 집에 거주민 수를 출력하라.
2
1
3
2
3
6
10
t = int(input())
for i in range(t):
floor = int(input())
ho = int(input())
cnt = [i+1 for i in range(ho)]
for j in range(floor):
for k in range(1,ho):
cnt[k] += cnt[k-1]
print(cnt[-1])
그래서 이렇게 문제를 풀었다.
이렇게 풀기전엔 한 20-30줄은 그냥 넘어갔는데, 결국 파이썬이 파이썬 한 것 같다..
겨우 공백빼면 10줄이다.
역시 생각보다 파이썬은 너무 어렵다.
각설하고 일단 푼 방식은 우선 입력을 받고
cnt리스트를 변수 ho에 맞게 1부터 ho까지 수를 리스트에 넣어주고 그다음 그 한개의 리스트를
업데이트 하는 식으로 전개했다.
변수 floor로 층수만큼 반복해주고 리스트 0번은 다 1로 고정이므로 인덱스 값 1부터 바꿔갔다.
해당 인덱스 값이 바로 뒤 해당하는 값에 추가되는 방식으로 리스트를 수정해나갔다.
그리고 리스트의 마지막 인덱스 값을 추출하는 -1로 인덱스를 지정해 출력하는 방식으로 햇다.
정말 헷갈렸다.
수학적인 규칙이 정말 글로 써가면서 해도 보이지가 않았다.
코테에서도 이런 문제를 만나면 쉽지 않겠지만, 지금은 아직 많이 부족한 것을 알기에 앞으로 1달
꼭 100문제 이상은 풀고싶다. 그래서 진짜 꾸준히 실력을 키워나가야겠다.
이렇게 다시 복기 하면서 조금이라도 흡수되었으면 좋겠다
화이팅!
백준 4948번 <베르트랑 공준> [파이썬] (0) | 2022.07.24 |
---|---|
백준 10872번 <팩토리얼> [파이썬] (0) | 2022.07.24 |
백준 1193번 <분수찾기> [파이썬] (0) | 2022.07.20 |
백준 2292번 <벌집> [파이썬] (0) | 2022.07.20 |
백준 2675번 <문자열 반복> [파이썬] (0) | 2022.07.14 |