🔖 https://www.acmicpc.net/problem/2447
✏️ 풀이 과정
📝 접근

- N은 3의 거듭제곱 꼴이므로, 위 그림과 같이 N >= 9에 대하여 전체를 9분할로 나누었을 때, (1, 1)에 해당하는 칸은 공백으로 채워져 있어야 한다. 따라서 분할 정복을 통하여 문제를 해결하는 것이 자연스럽다.
✨ 소스 코드
import sys
input = sys.stdin.readline
def solve(y, x, n):
if n == 1: return
for i in range(x + (n // 3), x + (n // 3) * 2):
for j in range(y + (n // 3), y + (n // 3) * 2):
result[i][j] = " "
n //= 3
for i in range(3):
for j in range(3):
if i == 1 and j == 1: continue
solve(y + i * n, x + j * n, n)
n = int(input())
result = [["*"] * n for _ in range(n)]
solve(0, 0, n)
for row in result:
print(''.join(row))