[Python] 별 출력 예제 (사용자 line수 입력)

해당 포스트에서는 Python에서 반복문을 이용하여 사용자 원하는 층수의 별(star)을 출력하는 방법을 소개합니다.

1. INTRO

네이버 지식iN에서 지식을 공유하고 있습니다. 간단한 질문들은 해당 질문에 바로 답변을 드리지만 질문의 내용이 유익하거나 추가 설명이 필요한 경우에는 포스팅을 작성하여 공유드리고 있습니다.

2. 질문

3. 풀이

별(*)찍기 예제는 프로그래밍/알고리즘을 공부하면서 많은 분들이 접하시는 예제로 반복문 구조를 이해하는데 큰 도움이 됩니다. 이번 질문은 일반적은 피라미드(삼각형) 형태의 별(*)을 출력하는 문제로 사용자에게 원하는 층수를 입력받아 처리하는 문제입니다.


R로 구현한 별 출력 예제는 아래 링크를 확인해 보세요.

스크립트 작성

대칭 형태의 별 출력 문제는 공백()과 별(*)의 배치를 고려하여 구조를 설계해야 합니다. 이번에 설명하는 피라미드 형태의 경우는 라인(line)이 증가할 수록 공백()은 -1씩 줄어들고, 별(*)은 1,3,5,... 구조로 +2씩 증가하게 됩니다. 해당 구조를 고려하여 구현한 코드는 아래와 같습니다.

x = int(input("출력 줄수 입력 : "))

for i in range(1, x+1):
    for j in range(x+1-i):
        print(" ", end="")
    for j in range(2*i-1):
        print("*", end="")
    print()
출력 줄수 입력 :  10
          *
         ***
        *****
       *******
      *********
     ***********
    *************
   ***************
  *****************
 *******************

4. 마무리

이번 포스트에서는 프로그래밍/알고리즘 학습시 많이 사용되는 별(*)모양 출력 문제를 풀어 보았습니다. 이번에 소개드린 별 출력 응용 문제는 사용자의 입력을 받고 그것을 출력에 반영하는 것이 주된 포인트였으며, 이번 학습 내용을 기반으로 아래 R로 구현한 다양한 별 출력 예제들을 Python으로 재구현하는 연습을 하시면 깊은 이해에 도움이 될거라 생각합니다.

5. 출처

[1] [R] 반복문을 이용한 별 출력 예제 1탄 (feat. 직각삼각형, 피라미드)
[2] [R] 반복문을 이용한 별 출력 예제 2탄 (feat. 다이아몬드, 마름모, 나비, 모래시계)


banner-request-analysis