본문 바로가기

카테고리 없음

Python / 2775 부녀회장이 될테야

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명이 산다 

 

문제를 이해하는데에는 그리 시간이 걸리지 않았는데 문제의 기준이 되는 0층의 주민들의 숫자를 이해하지못했다

0층의 i호에는 i명이 산다는 말이 이해가 되질않아서 검색을 해보니 0층의 1호에는 1명 2호에는 2명 이런식으로 증가하는것이였다 

 

from sys import stdin

t = int(stdin.readline())
for _ in range(t):
  k = int(stdin.readline())  #층
  n = int(stdin.readline())  #호
  saram = list(range(1, 15))
  
  for j in range(k):
    imp = list()
    for q in range(14):
      imp.append(sum(saram[0:q+1]))
    saram = list(imp)

  print(imp[n-1])

코드설명 

t 로 테스트케이스의 수를 받고 for문으로 테스트케이스의 수만큼 반복을해준다 

문제를 보면 n, k는 1이상 14이하이니 사람의 수를 저장할 리스트에 그만큼 저장을 해주고 

층의 수만큼 사람들의 수를 올려주고 저장해줄 반복문을 작성한다 

그다음 입력받은 호에 맞는 위치의 사람 수를 출력해주면 끝이다