728x90
아래 예제를 보고 규칙을 유추하여 주어진 N$(=3*2^k)$에 대해서 별을 출력하는 문제
24
*
* *
*****
* *
* * * *
***** *****
* *
* * * *
***** *****
* * * *
* * * * * * * *
***** ***** ***** *****
* *
* * * *
***** *****
* * * *
* * * * * * * *
***** ***** ***** *****
* * * *
* * * * * * * *
***** ***** ***** *****
* * * * * * * *
* * * * * * * * * * * * * * * *
***** ***** ***** ***** ***** ***** ***** *****
더보기
문제
예제를 보고 규칙을 유추한 뒤에 별을 찍어 보세요.
입력
첫째 줄에 N이 주어진다. N은 항상 3×$2^k$ 수이다. $(3, 6, 12, 24, 48, ...)$ $($0 ≤ k ≤ 10, k는 정수$)$
출력
첫째 줄부터 N번째 줄까지 별을 출력한다.
초기 별 ['*', "* *", "*****"] 세팅
N 줄에 대해서 가운데 정렬해서 출력한다.
$3*2^k$ 마다 기존 별에 두 배를 사이에 공백을 두고 추가해준다...
import sys
input = sys.stdin.readline
N = int(input())
stars = ['*', "* *", "*****"]
ans = []
k = 3
for i in range(N):
if i == k:
tmp = []
for j, star in enumerate(stars):
tmp.append(star+" "*(2*(i-j)-1)+star)
stars += tmp
k *= 2
ans.append(stars[i].center(2*N-1))
print("\n".join(ans))
더보기
예제 입력 1
24
예제 출력 1
*
* *
*****
* *
* * * *
***** *****
* *
* * * *
***** *****
* * * *
* * * * * * * *
***** ***** ***** *****
* *
* * * *
***** *****
* * * *
* * * * * * * *
***** ***** ***** *****
* * * *
* * * * * * * *
***** ***** ***** *****
* * * * * * * *
* * * * * * * * * * * * * * * *
***** ***** ***** ***** ***** ***** ***** *****
'IT > Python' 카테고리의 다른 글
[백준] 10830번 행렬 제곱 [Python] (1) | 2023.12.22 |
---|---|
[백준] 13172번 Σ [Python] (1) | 2023.12.21 |
[백준] 1504번 특정한 최단 경로 [Python] - 데이크스트라 (0) | 2023.12.19 |
[백준] 17070번 파이프 옮기기 1 [Python] - 다이나믹 (1) | 2023.12.18 |