728x90
๋ฌธ์
ํ์ด
์ ๊ทธ๋ฆผ๊ณผ ํตํด ๊ท์น์ ์ ์ ์๋ค.
N = 6 -> N = 3์ผ ๋์ ์ผ๊ฐํ 3๊ฐ๋ก ๋ถํ ๊ฐ๋ฅ
N = 12 -> N = 6์ผ ๋์ ์ผ๊ฐํ 3๊ฐ๋ก ๋ถํ ๊ฐ๋ฅ
N = 24 -> N = 6์ผ ๋์ ์ผ๊ฐํ 3๊ฐ๋ก ๋ถํ ๊ฐ๋ฅ
...
N= 3์ธ ๊ฒฝ์ฐ ์ผ๊ฐํ์ ๊ทธ๋ฆฐ๋ค.
์๋ ๊ฒฝ์ฐ, ์ด์ ์ํ์ ์ผ๊ฐํ(N//2) 3๊ฐ๋ก ๋ถํ (๊ฐ๊ฐ์ ๋ํด ์ฌ๊ท ํธ์ถ)
1. ์ฐ์ ์ ์ฒด ๋ฐฐ์ด์ ์์ฑ
stars = [[' ']*2*n for _ in range(n)]
2. ๋ถํ ์ ๋ณต์ ์ํด ํจ์ ์์ฑ ํ n์ด 3์ผ ๋ ์ผ๊ฐํ์ ๊ทธ๋ ค์ค๋ค. i, j๋ ์ขํ ๊ฐ
def recursion(i, j, size):
if size == 3:
stars[i][j] = '*'
stars[i + 1][j - 1] = stars[i + 1][j + 1] = "*"
for k in range(-2, 3):
stars[i + 2][j - k] = "*"
3. ๋ง์ฝ n์ด 3์ด ์๋ ๊ฒฝ์ฐ ๋ถํ ํ๋ค.
else:
newSize = size//2
recursion(i, j, newSize)
recursion(i + newSize, j - newSize, newSize)
recursion(i + newSize, j + newSize, newSize)
4. ํจ์ ํธ์ถ ํ ์ถ๋ ฅ
recursion(0, n - 1, n)
for star in stars:
print("".join(star))
N ์ด 6์ผ๋์ ์์
# N : 6
# newSize = 6 // 2 = 3
recursion(0, 5, newSize)
recursion(3, 5 - 3, newSize)
recursion(3, 5 + 3, newSize)
์ฝ๋
import sys
input = sys.stdin.readline
n = int(input())
stars = [[' ']*2*n for _ in range(n)]
def recursion(i, j, size):
if size == 3:
stars[i][j] = '*'
stars[i + 1][j - 1] = stars[i + 1][j + 1] = "*"
for k in range(-2, 3):
stars[i + 2][j - k] = "*"
else:
newSize = size//2
recursion(i, j, newSize)
recursion(i + newSize, j - newSize, newSize)
recursion(i + newSize, j + newSize, newSize)
recursion(0, n - 1, n)
for star in stars:
print("".join(star))
๋ง๋ฌด๋ฆฌ
์ฌ๊ท๋ ๋๋ฌด ์ด๋ ต๋ค... ๋์ค์ ์ฌ๊ท ๋ฌธ์ ๋ง ๋ชจ์์ ํ์ด๋ด์ผ๊ฒ ๋ค.
728x90