문제📖
풀이🙏
- n = 3^i 일때는 가운데를 비워두고 n = 3^(i-1) 일때의 별 배열이 찍히는 것을 확인한다.
- start_recursion을 이용하여 재귀적으로 별 찍기를 수행한다.
코드💻
def star_recursion(n):
global data
if n == 3:
data[0][:3] = data[2][:3] = [1]*3
data[1][:3] = [1, 0, 1]
return
a = n//3
star_recursion(n//3)
for i in range(3):
for j in range(3):
if i == 1 and j == 1:
continue
for k in range(a):
data[a*i + k][a*j : a*(j+1)] = data[k][:a]
n = int(input())
data = [[0 for i in range(n)] for i in range(n)]
star_recursion(n)
for i in data :
for j in i :
if j :
print('*', end = '')
else :
print(' ', end = '')
print()