정수 N이 주어지면 높이가 N인 왼쪽 정렬 별 역삼각형을 출력하는 프로그램을 작성한다. 첫째 줄에는 별이 N개, 마지막 줄에는 별이 1개 출력되어야 한다.
입력
첫째 줄에 정수 N이 주어진다. (0 <= N <= 10)
출력
높이가 N인 왼쪽 정렬 별 역삼각형을 출력한다.
N = int(input())
for i in range(N, 0, -1):
print("*"*i)
다음 문제는 정수 ( N )이 주어졌을 때, 각 행마다 출력되는 별의 개수를 점차 감소시키는 방식으로 왼쪽 정렬된 역삼각형 형태를 구성하는 출력 문제이다. 이는 반복문의 진행 방향과 문자열 생성 방식을 이해하는 데 중요한 예시가 된다.
1. 문제의 형식적 정의
출력은 다음과 같은 규칙을 따른다.
- 첫 번째 행: 별 ( N )개
- 마지막 행: 별 1개
- 각 행마다 별의 개수는 1씩 감소
즉, 총 ( N )개의 행이 생성되며, 각 행의 출력 길이는 다음과 같은 수열을 따른다:
[
N, N-1, N-2, \dots, 1
]
2. 프로그램 구성
N = int(input())
for i in range(N, 0, -1):
print("*" * i)
3. 구성 요소별 문법 해설
3.1 입력 처리
N = int(input())
- input() 함수는 사용자로부터 입력을 문자열 형태로 받아온다.
- int() 함수는 해당 문자열을 정수형으로 변환한다.
- 변환된 값은 변수 N에 저장되며, 이후 반복 횟수의 기준으로 사용된다.
3.2 반복 제어 구조
for i in range(N, 0, -1):
▪ range(start, stop, step)
- 정수 시퀀스를 생성하는 함수이다.
- start: 시작값
- stop: 종료값 (포함되지 않음)
- step: 증감 간격
해당 구문은 다음과 같은 수열을 생성한다:
[
i = N, N-1, N-2, \dots, 1
]
즉, 반복 변수 i는 매 반복마다 1씩 감소한다.
▪ 반복의 의미
- 각 반복에서 i는 현재 행에 출력할 별의 개수를 나타낸다.
- 반복문은 생성된 수열의 길이만큼 실행된다.
3.3 문자열 반복 연산
"*" * i
- 문자열과 정수의 곱셈 연산은 해당 문자열을 정수 횟수만큼 반복한 새로운 문자열을 생성한다.
- 이는 반복문 내부에서 출력할 별의 개수를 동적으로 조절하는 역할을 한다.
예:
- ( i = 4 ) → "****"
- ( i = 2 ) → "**"
3.4 출력 처리
print("*" * i)
- print() 함수는 인자로 전달된 문자열을 표준 출력에 출력한다.
- 기본적으로 각 출력 이후 줄바꿈이 수행된다.
4. 실행 과정 예시
입력값이 ( N = 3 )일 경우, 반복은 다음과 같이 진행된다.
반복 변수 ( i )생성 문자열출력 결과
| 3 | "***" | *** |
| 2 | "**" | ** |
| 1 | "*" | * |
5. 개념적 정리
이 프로그램은 다음 세 가지 핵심 요소의 결합으로 구성된다.
- 감소하는 정수 수열 생성: range(N, 0, -1)
- 반복 제어 구조: for 문을 통한 순차적 처리
- 문자열 반복 연산: "*" * i를 통한 출력 데이터 생성
6. 결론
본 문제는 반복문의 진행 방향(증가 → 감소)을 제어하는 방법과,
문자열 연산을 활용한 출력 패턴 구성 방식을 이해하는 데 목적이 있다.
특히, 다음과 같은 개념을 명확히 이해하는 것이 중요하다:
반복문은 단순한 횟수 제어가 아니라,
정의된 수열을 순차적으로 순회하며 각 단계의 출력을 구성하는 과정이다.
'Univ > Python Programming' 카테고리의 다른 글
| [문제 05] 별로 세모 그리기 - Python 풀이 (0) | 2026.04.09 |
|---|---|
| 파이썬의 변수와 기본 자료형 실습 (0) | 2026.04.08 |
| 파이썬의 변수와 기본 자료형 (0) | 2026.04.08 |
| [문제 03] 별로 피라미드 그리기 - Python 풀이 (0) | 2026.04.08 |
| [문제 01] 별로 삼각형 그리기 - Python 풀이 (0) | 2026.04.08 |