import sys
input = sys.stdin.readline
from collections import deque
N = int(input())
star = [[" "]*N*2 for i in range(N)]
def Triangle(y,x,n):
if n == 3:
star[y][x+2] = "*"
star[y+1][x+1] = star[y+1][x+3] = "*"
for i in range(5):
star[y+2][x+i] = "*"
else:
Triangle(y,x+n//2,n//2)
Triangle(y+n//2,x,n//2)
Triangle(y+n//2,x+n,n//2)
Triangle(0,0,N)
for i in star:
print("".join(i))
처음에는 함수 자체에 print를 이용한 코드를 짜서 문제를 풀려고 시도해 보았는데, 내가 아이디어가 부족한건지 잘 풀리지 않았다. 그래서 list를 먼저 만든 다음 모양을 만들어 주고 join함수를 이용하는 방법을 시도하였더니 쉽게 풀렸다.
오늘의 교훈) 데이터가 너무 방대해서 메모리가 부족한게 아니라면 괜히 깝치지 말고 2차원 배열을 쓰자