[문제]
첫째 줄에는 별 1개, 둘째 줄에는 별 3개, ..., N번째 줄에는 별 2×N-1개를 찍는 문제
별은 가운데를 기준으로 대칭이어야 한다.
https://www.acmicpc.net/problem/2442
2442번: 별 찍기 - 5
첫째 줄에는 별 1개, 둘째 줄에는 별 3개, ..., N번째 줄에는 별 2×N-1개를 찍는 문제 별은 가운데를 기준으로 대칭이어야 한다.
www.acmicpc.net
🎨 풀이
💡 전체 코드
n = int(input())
total = 2 * n - 1
for i in range(1,n+1):
print(' ' * ((total-(2*i-1))//2), end='')
print('*' * (2*i-1), end='')
print("")
> 핵심 : 2*n-1 식을 이용해서 출력!
🍦 코드 설명 (실행 순서대로 나열)
# main
n = int(input())
total = 2 * n - 1
1. n을 입력받는다.
2. total을 (2 * n - 1) 로 초기화한다.
- 가장 밑에 있는 줄을 기준으로 트리를 쌓아야하기 때문에 가장 밑 줄을 total에 넣어두고 계산해주는 것이다.
for i in range(1,n+1):
print(' ' * ((total-(2*i-1))//2), end='')
print('*' * (2*i-1), end='')
print("")
3. 공백은 total - (2 * i - 1) // 2 만큼 출력한다.
- total이 맨 밑줄이니까, 거기서 가운데 별을 빼주고 나누기 2 해준게 공백 칸 수다.
4. '*' * (2 * i - 1)을 출력한다.
- 원래 식 이용한 것이다.
5. print("")로 줄바꿈을 한다.
- 나는 여기가.. 3번을 한번 더 반복하는건줄 알았는데.. 그렇게 풀면 출력형식이 뭐가 잘못되었다고 뭐라고 하더라. 여튼 그래서 나중에 질문 게시판 찾아보고 알았다. 하하.

끝~
⭐ 느낀점
> 재밌담. print("") 때문에 두 번 틀려버린게 좀 아쉽긴 하지만~~~~ 그래도 잘했다.
'🎲 알고리즘 공부 > 백준' 카테고리의 다른 글
[백준] 1032번 - 명령 프롬프트 (파이썬) (0) | 2022.09.04 |
---|---|
[백준] 2490번 - 윷놀이 (파이썬) (0) | 2022.09.03 |
[백준] 10773번 - 제로 (파이썬) (0) | 2022.09.01 |
[백준] 11721번 - 열 개씩 끊어 출력하기 (파이썬) (0) | 2022.08.30 |
[백준] 2475번 - 검증수 (파이썬) (0) | 2022.08.29 |