좌충우돌 개발자의 길

백준 알고리즘 | 2775번 (부녀회장이 될테야) | 파이썬 본문

CODING TEST/백준

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

sustronaut 2021. 7. 11. 19:48

2775번 (부녀회장이 될테야)*

  • 이 아파트에 거주를 하려면 조건이 있는데, “a층의 b호에 살려면 자신의 아래(a-1)층의 1호부터 b호까지 사람들의 수의 합만큼 사람들을 데려와 살아야 한다” 는 계약 조항을 꼭 지키고 들어와야 한다.
  • 아파트에 비어있는 집은 없고 모든 거주민들이 이 계약 조건을 지키고 왔다고 가정했을 때, 주어지는 양의 정수 k와 n에 대해 k층에 n호에는 몇 명이 살고 있는지 출력하라. 단, 아파트에는 0층부터 있고 각층에는 1호부터 있으며, 0층의 i호에는 i명이 산다.
  • 첫 번째 줄에 Test case의 수 T가 주어진다. 그리고 각각의 케이스마다 입력으로 첫 번째 줄에 정수 k, 두 번째 줄에 정수 n이 주어진다
  • 1 ≤ k, n ≤ 14
t = int(input())

for _ in range(t):
    floor = int(input())  # 층
    num = int(input())  # 호
    f0 = [x for x in range(1, num+1)]  # 0층 리스트

    for k in range(floor):  # 층 수 만큼 반복
        for i in range(1, num):  # 1 ~ n-1까지 (인덱스로 사용)
            f0[i] += f0[i-1]  # 층별 각 호실의 사람 수를 변경
    print(f0[-1])  # 가장 마지막 수 출력

새롭게 알게 된 점

  • 언더스코어 ( for _ in range(t)) 가 쓰이는 이유
    • 인터프리터(Interpreter)에서 마지막 값을 저장할 때
    • 값을 무시하고 싶을 때 (흔히 “I don’t care"라고 부른다.)
    • 변수나 함수명에 특별한 의미 또는 기능을 부여하고자 할 때
    • 국제화(Internationalization, i18n)/지역화(Localization, l10n) 함수로써 사용할 때
    • 숫자 리터럴값의 자릿수 구분을 위한 구분자로써 사용할 때
    • 참고 사이트 : https://pacific-ocean.tistory.com/103
  • f0 = [x for x in range(1,n+1)] 리스트 만드는 법
  • ex/ f0 = [x for x in range(0, 5)] —> 출력값 : [0, 1, 2, 3, 4]
  • 참고 사이트 : https://ooyoung.tistory.com/89