백준 2447 - 별 찍기 - 10 (파이썬)
Updated:
Answer
def get_stars(n):
if n == 1:
return ['*']
star_small = get_stars(n // 3)
star_large = []
for s in star_small:
star_large.append(s * 3)
for s in star_small:
star_large.append(s + ' ' * (n // 3) + s)
for s in star_small:
star_large.append(s * 3)
return star_large
n = int(input())
print('\n'.join(get_stars(n)))
Answer2
def draw_star(n) :
global Map
if n == 3 :
Map[0][:3] = Map[2][:3] = [1]*3
Map[1][:3] = [1, 0, 1]
return
a = n//3
draw_star(n//3)
for i in range(3) :
for j in range(3) :
if i == 1 and j == 1 :
continue
for k in range(a) :
Map[a*i+k][a*j:a*(j+1)] = Map[k][:a]
N = int(input())
Map = [[0 for i in range(N)] for i in range(N)]
draw_star(N)
for i in Map :
for j in i :
if j :
print('*', end = '')
else :
print(' ', end = '')
print()