본문 바로가기

Univ/Python Programming

[문제 01] 별로 삼각형 그리기 - Python 풀이

정수 N이 주어지면 높이가 N인 왼쪽 정렬 별 삼각형을 출력하는 프로그램을 작성한다. i번째 줄에는 별이 i개 출력되어야 한다.

입력

첫째 줄에 정수 N이 주어진다. (0 <= N <= 10)

출력

높이가 N인 왼쪽 정렬 별 삼각형을 출력한다.

 

N = int(input())

for i in range(1, N+1):
    print("*"*i)

 

다음 프로그램은 사용자로부터 정수 ( N )을 입력받아, 높이가 ( N )인 왼쪽 정렬 별 삼각형을 출력하는 간단한 반복 구조를 구현한 것이다. 각 구성 요소를 문법 중심으로 체계적으로 설명하면 다음과 같다.


1. 입력 처리: input()과 int()

N = int(input())

▪ input() 함수

  • 표준 입력(Standard Input)으로부터 한 줄의 데이터를 읽어들인다.
  • 반환값의 자료형은 항상 문자열(str)이다.

예를 들어 사용자가 3을 입력하면, 내부적으로는 "3"이라는 문자열로 처리된다.

▪ int() 함수

  • 문자열 형태의 숫자를 정수형(int)으로 변환하는 내장 함수이다.
  • 반복 횟수나 산술 연산에 사용하기 위해 반드시 정수형으로 변환해야 한다.

2. 반복 구조: for 문과 range() 함수

for i in range(1, N + 1):

▪ range(start, stop)

  • 지정된 범위의 정수 시퀀스를 생성한다.
  • start부터 stop-1까지의 값을 순차적으로 생성한다.
  • 즉, range(1, N+1)은 1부터 ( N )까지의 정수를 포함한다.

▪ for 반복문

  • 시퀀스에 포함된 값을 하나씩 순회하며 반복을 수행한다.
  • 각 반복마다 변수 i에는 현재 값이 할당된다.

▪ 들여쓰기(Indentation)

  • 파이썬은 중괄호 {} 대신 들여쓰기를 통해 코드 블록을 구분한다.
  • for 문 아래 들여쓰기된 영역은 반복 실행되는 코드 블록이다.

3. 문자열 연산: 반복 연산자 *

"*" * i

▪ 문자열 반복

  • 문자열에 정수를 곱하면 해당 문자열이 지정된 횟수만큼 반복된 새로운 문자열이 생성된다.

예:

  • "*" * 1 → "*"
  • "*" * 3 → "***"

이는 반복문 내부에서 별의 개수를 점진적으로 증가시키는 핵심 연산이다.


4. 출력 함수: print()

print("*" * i)

▪ print() 함수

  • 괄호 안의 값을 표준 출력(Standard Output)에 출력한다.
  • 기본적으로 출력 후 자동으로 줄바꿈(\n)이 이루어진다.

5. 전체 실행 흐름

입력값이 ( N = 3 )이라고 가정하면, 반복문은 다음과 같이 동작한다.

반복 횟수 (i)생성 문자열출력 결과

1 "*" *
2 "**" **
3 "***" ***

각 반복에서 문자열이 생성되고 즉시 출력되며, 결과적으로 왼쪽 정렬된 삼각형 형태가 완성된다.


6. 정리

이 프로그램은 다음 세 가지 핵심 문법 요소로 구성된다.

  1. 입력 처리: input() → int()를 통한 형 변환
  2. 반복 구조: for 문과 range()를 이용한 제어 흐름
  3. 문자열 연산: "문자열" * 정수 형태의 반복 생성

이 세 요소의 결합을 통해 간결하면서도 직관적인 출력 구조를 구현할 수 있다.