백준 알고리즘 5341번

백준 알고리즘 5341번 Pyramids

문제

블록 피라미드는 먼저 n개의 블록으로 구성된 기본 레이어를 구축한 다음, 다음 레이어에 n-1개의 블록을 추가하여 구성됩니다. 최상위 레이어에 블록이 하나만 남을 때까지 이 과정을 반복합니다.

블록 피라미드

베이스의 크기가 주어지면 피라미드를 만드는 데 필요한 블록의 수를 계산해야 합니다. 예를 들어, 밑면 크기가 4인 피라미드에는 총 10개의 블록이 필요합니다.

입력

입력은 한 줄에 하나씩 정수의 시퀀스입니다. 입력의 끝은 정수 0으로 표시되며 피라미드의 밑변을 나타내지 않습니다. 마지막(0)을 제외한 모든 정수는 양수입니다.

출력

각 양의 정수에 대해 지정된 및변으로 피라미드를 만드는 데 필요한 총 블록 수를 출력합니다.

예제

입력출력
4
6
0
10
21

풀이

while 1:
  n = int(input())
  if n == 0:
    break
  sum = 0
  for i in range(1, n+1):
    sum = sum + i
  print(sum)
  1. 0을 입력할 때까지 반복문으로 while 1을 통해서 무한 반복문을 생성한다.
  2. 피라미드의 층 수인 n을 입력받는다.
  3. 입력한 수가 0일 경우 반복문을 멈춘다.
  4. for문을 사용하여 입력한 수까지 합계를 수한다.
    1. 피라미드의 맨 위의 블록은 1개이므로 1부터 시작하고, 마지막 n층까지 구해야 하므로 for문의 범위는, (1, n+1)이 된다.
* TOC {:toc}

© 2021. All rights reserved.