백준 2439번: 별찍기 (구현)
https://www.acmicpc.net/problem/2439
문제
첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제
하지만, 오른쪽을 기준으로 정렬한 별(예제 참고)을 출력하시오.
입력
첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다.
출력
첫째 줄부터 N번째 줄까지 차례대로 별을 출력한다.
예제 입력 1
5
예제 출력 1
*
**
***
****
*****
풀이
n = int(input())
for i in range(1, n + 1):
print(" " * (n - i) + "*" * i)
이 문제를 풀기 위해선 일단 반복문을 어떻게 구성을 해야할지 생각해야 합니다.
- 입력을 받은 수만큼, 왼쪽에는 공백을 출력, 오른쪽에는 별 출력.
- 그러면 반복문을 사용해서 i, 즉 반복문의 반복 횟수를 1부터 n+1까지 반복하도록 작성합니다.
i + 1로 표현되며, i가 0부터 시작하기 때문에 i + 1을 사용하여 별의 개수를 조절.
- i를 0부터 출력하면 맨 윗줄엔 공백만 출력되기 때문.
- 또한, 공백과 별을 출력하는걸 한줄의 문자열로 해서 출력합니다.
- i가 증가할수록 입력한 n의 값만큼 i의 값을 n에서 i를 뺀 만큼 공백을 출력
- 그리고 반복분의 반봇 횟수 만큼 i개의 별을 출력.
n = 5인 경우를 예로 들어 반복문의 동작을 살펴보겠습니다.
반복 횟수 (i) | 공백 개수 (n - (i + 1)) | 별 개수 | 출력 형태 |
0 | 5 - 1 = 4 | 1 | " *" |
1 | 5 - 2 = 3 | 2 | " **" |
2 | 5 - 3 = 2 | 3 | " ***" |
3 | 5 - 4 = 1 | 4 | " ****" |
4 | 5 - 5 = 0 | 5 | "*****" |
'⌨️ Python & Algorithm' 카테고리의 다른 글
[백준] 2884번: 알람 시계 (by Python / 파이썬) (0) | 2025.01.26 |
---|---|
[백준] 2562번: 최댓값 (by Python / 파이썬) (0) | 2025.01.26 |
[백준] 2753번 : 윤년 (by Python / 파이썬) (0) | 2025.01.22 |
[백준] 2475번 : 검증수 (by Python / 파이썬) (0) | 2025.01.21 |
[백준] 10871번 : X보다 작은수 (by Python / 파이썬) (0) | 2025.01.21 |