[백준] 별 찍기-19

 

문제

n = int(input())

size = 4 * n - 3
map = [[' '] * size for _ in range(size)]

def draw_star(n, r, c): # r과 c는 현재 크기의 좌측상단 좌표
    if n == 1:
        map[r][c] = '*'
        return
    
    length = 4 * n - 3
    
    # 바깥 테두리 그리기
    for i in range(length):
        map[r][c + i] = '*'  # 위쪽 가로줄
        map[r + length - 1][c + i] = '*'  # 아래쪽 가로줄
        map[r + i][c] = '*'  # 왼쪽 세로줄
        map[r + i][c + length - 1] = '*'  # 오른쪽 세로줄

    # 내부 작은 사각형을 호출
    draw_star(n - 1, r + 2, c + 2)

draw_star(n, 0, 0)

for row in map:
    print("".join(row))