본문 바로가기

Python/Python-코딩도장 심사문제

코딩도장 Python 심사문제 19-6 피라미드 만들기

# 표준 입력으로 삼각형의 높이가 입력됩니다.
# 입력된 높이만큼 산 모양으로 별을 출력하는 프로그램을 만드세요(input에서 안내 문자열은 출력하지 않아야 합니다).
# 이때 출력 결과는 예제와 정확히 일치해야 합니다.
# 모양이 같더라도 공백이나 빈 줄이 더 들어가면 틀린 것으로 처리됩니다.
# ex)
# >>> 3
#   *
#  ***
# *****
# >>> 5
#     *
#    ***
#   *****
#  *******
# *********
# 문제 제출 코딩도장 Python
# 답안 제출 2022/01/11 17:58 

height = int(input())

for i in range(height): #3을 넣은경우 0, 1, 2
    for j in reversed(range(height)):   #3을 넣은경우 2, 1, 0
        if j > i:
            print(' ', end='')
        else:
            print('*', end='')
    for j in range(height):
        if j < i:
            print('*', end='')
    print()


# 이중 반복문의 직각삼각형 두개를 붙여 피라미드형태로 만드는 형식이다.
# 맨 첫번째 포문은, 피라미드의 높이를 말한다.
# 두번째 포문은, 리버스드, 피라미드를 반으로 나눴을 때의 왼쪽 부분이다. 이 부분은 피라미드를 구성함에 있어 공백이 들어가기 때문에 j가 i보다 큰 동안 공백을 출력하고, 아니라면 *을 출력하도록 한다.
# 세번째 포문은 피라미드를 반으로 나눴을 때의 오른쪽 부분이다. 이 부분은 공백이 필요없기 때문에 j가 i보다 작은동안 *을 출력한다.
# 한 줄 한줄이 끝날 때 마다, print()로 개행을 시켜 피라미드의 형태를 만들어 낸다.