n์ 3์ ๋ฐฐ์๋ก ์ ๋ ฅ๋๊ณ , n*n ํฌ๊ธฐ์ ์ฌ๊ฐํ์ผ๋ก *์ด ์ถ๋ ฅ๋๋ค.
์ ์ฒด ์ฌ๊ฐํ์ 9๊ฐ๋ก ๋๋ด์ ๋, ์ ๊ฐ์ด๋ฐ๋ ํญ์ ๋น์นธ, ๋๋จธ์ง 8๊ฐ ๋ถ๋ถ์ ๋ 9๊ฐ๋ก ๋๋ ์ ธ ๊ฐ์ ๊ท์น์ ๋ฐ๋ณตํ๋ค => ์ฌ๊ทํจ์
1. ์ ๋ ฅ๋ฐ์ n*n ํฌ๊ธฐ์ ์ด์ค ๋ฆฌ์คํธ์ ๋ฏธ๋ฆฌ '*'์ ์ฑ์๋๊ณ ์ ๊ฐ์ด๋ฐ ๋ถ๋ถ๋ง ๊ณต๋ฐฑ์ผ๋ก ๋ฐ๊พธ๋ ๋ฐฉ๋ฒ (1)
- divstar(arrays, x, y, n) : arrays์ ํฌ๊ธฐ n, (x, y)์ขํ๊ฐ ์ ๋ฌ๋๋ฉด arrays์ (x, y) ์์น๋ถํฐ n/3 ํฌ๊ธฐ์ 9๊ฐ ์ฌ๊ฐํ์ผ๋ก ๋๋ ์ ๊ฐ์ด๋ฐ ์ฌ๊ฐํ์ blank()๋ฅผ, ๋๋จธ์ง ์ฌ๊ฐํ์ ๊ฐ ๊ผญ์ง์ ์ขํ๋ก star() ํธ์ถ
- star(arrays, x, y, n) : n์ด 1์ด๋ฉด ํจ์๋ฅผ ์ข ๋ฃํ๊ณ 1์ด ์๋๋ฉด divstar() ํธ์ถ
- blank(arrays, x, y, n) : arrays์ (x, y)๋ก๋ถํฐ n ํฌ๊ธฐ๋งํผ์ ์ฌ๊ฐํ์ ๊ณต๋ฐฑ์ผ๋ก ๋ณ๊ฒฝ
# 2447.py
def divstar(arrays, x, y, n):
star(arrays, x, y, n / 3)
star(arrays, x, y + n / 3, n / 3)
star(arrays, x, y + 2 * n / 3, n / 3)
star(arrays, x + n / 3, y, n / 3)
blank(arrays, x + n / 3, y + n / 3, n / 3)
star(arrays, x + n / 3, y + 2 * n / 3, n / 3)
star(arrays, x + 2 * n / 3, y, n / 3)
star(arrays, x + 2 * n / 3, y + n / 3, n / 3)
star(arrays, x + 2 * n / 3, y + 2 * n / 3, n / 3)
def blank(arrays, x, y, n):
for i in range(int(x), int(x + n)):
for j in range(int(y), int(y + n)):
arrays[i][j] = ' '
def star(arrays, x, y, n):
if n == 1:
return
divstar(arrays, x, y, n)
a = int(input())
array = [['*' for i in range(a)] for i in range(a)]
divstar(array, 0, 0, a)
for i in range(a):
for j in range(a):
print(array[i][j], end='')
print()
2. ์ ๋ ฅ๋ฐ์ n*n ํฌ๊ธฐ์ ์ด์ค ๋ฆฌ์คํธ์ ๋ฏธ๋ฆฌ '*'์ ์ฑ์๋๊ณ ์ ๊ฐ์ด๋ฐ ๋ถ๋ถ๋ง ๊ณต๋ฐฑ์ผ๋ก ๋ฐ๊พธ๋ ๋ฐฉ๋ฒ (2)
- star(arrays, x, y, n) : n์ด 1์ด๋ฉด ํจ์๋ฅผ ์ข ๋ฃ. 1์ด ์๋๋ฉด ๊ฐ์ด๋ฐ ์ฌ๊ฐํ ์์น๋ก blank()๋ฅผ ํธ์ถํ๊ณ arrays์ (x, y) ์์น๋ถํฐ n/3 ํฌ๊ธฐ์ 9๊ฐ ์ฌ๊ฐํ์ผ๋ก ๋๋ ๊ฐ ๊ผญ์ง์ ์ขํ๋ก star() ํธ์ถ
- blank(arrays, x, y, n) : arrays์ (x, y)๋ก๋ถํฐ n ํฌ๊ธฐ๋งํผ์ ์ฌ๊ฐํ์ ๊ณต๋ฐฑ์ผ๋ก ๋ณ๊ฒฝ
# 2447-2.py
def blank(arrays, x, y, n):
for i in range(int(x), int(x + n)):
for j in range(int(y), int(y + n)):
arrays[i][j] = ' '
def star(arrays, x, y, n):
if n == 1:
return
n /= 3
blank(arrays, x + n, y + n, n)
for i in range(3):
for j in range(3):
star(arrays, x + n * i, y + n * j, n)
a = int(input())
array = [['*' for i in range(a)] for i in range(a)]
star(array, 0, 0, a)
for i in range(a):
for j in range(a):
print(array[i][j], end='')
print()
(์๊ฐ์ด๊ณผ ๋ฐ์.. ์๊ทธ๋ฐ์ง ๋ชจ๋ฅด๊ฒ ์ ใ
)
3. ๊ฐ์ฅ ์์ ์ฌ๊ฐํ๋ถํฐ ๋ง๋ค์ด ํฌ๊ธฐ๋ฅผ ํค์ ๋๊ฐ๋ ๋ฐฉ๋ฒ
- star(x)
1. ์ ๋ ฅ๋ฐ์ x๊ฐ 1์ด๋ฉด ['*'] ๋ฐํ => ๊ฐ์ฅ ์์ ํฌ๊ธฐ์ ์ฌ๊ฐํ
2. 3๋ณด๋ค ํฌ๋ฉด a = star(x/3) ํธ์ถ
3. ๋ฐํ๋ฐ์ ๋ฆฌ์คํธ a๊ฐ 3๋ฒ / 1๋ฒ ๊ณต๋ฐฑ 1๋ฒ / 3๋ฒ ๋ฐ๋ณต๋๋ฉด
=> ๋ค์ ํฌ๊ธฐ์ ์ฌ๊ฐํ
# 2447-3.py
def star(x):
if x == 1:
return ['*']
x = x // 3
a = star(x)
topbottom = [i * 3 for i in a]
middle = [i + ' ' * x + i for i in a]
return topbottom + middle + topbottom
n = int(input())
mystar = '\n'.join(star(n))
print(mystar)
์ด๋ง์ด๋งํ ์ฐจ์ด๊ฐ ๋๋ค..