*
* *
*****
https://www.acmicpc.net/problem/2448
n = int(input())
def star(l):
if l == 3:
return [' * ',' * * ','*****']
arr = star(l//2)
stars = []
for i in arr:
stars.append(' '*(l//2)+i+' '*(l//2))
for i in arr:
stars.append(i + ' ' + i)
return stars
print('\n'.join(star(n)))
n = 3일때
*
* *
*****
n = 6일때
*
* *
*****
* *
* * * *
***** *****
n = 12일때
*
* *
*****
* *
* * * *
***** *****
* *
* * * *
***** *****
* * * *
* * * * * * * *
***** ***** ***** *****
n= 3일때 트리 모양이 n=6이 되면서 밑에 2개가 더 생기고, 원래 트리가 가운데로 옮겨졌습니다.
원래 트리가 가운데로 옮기도록 하려면 n//2 일때 트리모양에서 양옆으로 l//2만큼 공백을 추가하면 됩니다.
그리고 아래 트리 2개는 가운데에 공백을 하나만 추가하면 됩니다.
'코딩테스트 > 백준' 카테고리의 다른 글
백준 파이썬 2873 롤러코스터 (0) | 2022.01.23 |
---|---|
백준 파이썬 11664 선분과 점 (0) | 2022.01.11 |
백준 파이썬 2447 별찍기 - 10 (1) | 2021.12.31 |
백준 1891 파이썬 사분면 (0) | 2021.12.31 |
백준 1201 파이썬 NMK (0) | 2021.12.31 |