백준 알고리즘 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)
- 0을 입력할 때까지 반복문으로
while 1
을 통해서 무한 반복문을 생성한다. - 피라미드의 층 수인
n
을 입력받는다. - 입력한 수가 0일 경우 반복문을 멈춘다.
for
문을 사용하여 입력한 수까지 합계를 수한다.- 피라미드의 맨 위의 블록은 1개이므로 1부터 시작하고, 마지막
n
층까지 구해야 하므로for
문의 범위는,(1, n+1)
이 된다.
- 피라미드의 맨 위의 블록은 1개이므로 1부터 시작하고, 마지막