๊ฑฐ์ 1๋ ์ ์ ํ์๋ ๋ฌธ์ . ์ง์ง ์๋ฌด๋ฐ ๊ณ๊ธฐ ์์ด ๊ทธ๋ฅ ๋ฌ๊ธ์์ด ๋ค์ ์๊ฐ๋์ ํ์ด๋ดค๋ค. ๋คํํ ํด๊ฒฐ
์ด ๋ฌธ์ ๋ ์ฌ๊ท์ ํน์ง์ ์ ์ดํดํ๋ฉด ํด๊ฒฐํ ์ ์๋ ๋ฌธ์ ๋ค.
๊ด์ฐฎ์ ๋ฌธ์ ์ธ ๊ฑฐ ๊ฐ๋ค. ๊ผญ ํ๊ณ ๋์ ์์ ์ ๊ฒ์ผ๋ก ์ฒดํํ์.
์์ด๋์ด
์ฌ๊ณ ๋ฅผ ํ์ด๊ฐ๋ ๊ฑฐ๋ผ ์ข ์ถ์์ ์ผ ์ ์๋ค.
์ผ๋จ ์ฒซ ๋ฒ์งธ N = 3์ธ ๊ฒฝ์ฐ๋ ๋ค์๊ณผ ๊ฐ๋ค.
***
* *
***
๊ทธ๋ฆฌ๊ณ N = 9์ธ ๊ฒฝ์ฐ๋ ๋ค์๊ณผ ๊ฐ๋ค.
์ฌ๊ธฐ์ ํจํด์ ๋๋ ๋ณด๋ฉด ํฌ๊ฒ Aํํธ(๋นจ๊ฐ์), Bํํธ(ํ๋์)๋ก ๋๋ ์ ์๋ค.
Aํํธ๋ N = 3์ ์์ผ๋ก 3๋ฐฐ ๋๋ฆฐ ๊ฑฐ๊ณ
Bํํธ๋ Aํํธ์ ์ ์ฌํ์ง๋ง ๊ฐ์ด๋ฐ๋ ๊ณต๋ฐฑ ' ' ์ผ๋ก ์ฑ์ด ๊ฑธ ๋ณผ ์ ์๋ค.
N = 27, N = 81๋ ์ด ๋ฐฉ์์ผ๋ก ๋๋ ค์ฃผ๋ฉด ๋๋ค.
๊ทธ๋ผ ์ด์ ์ด๊ฑธ ์ฝ๋๋ก ๊ตฌํํ๋ฉด ๋จ.
์ ์ฒด ์ฝ๋
init = ['***', '* *', '***']
N = int(input())
def recursion(n = 3, arr = init):
if n == N:
return arr
tmp = []
for i in range(n):
tmp.append(arr[i] * 3)
for i in range(n):
tmp.append(arr[i] + ' ' * n + arr[i])
for i in range(n):
tmp.append(arr[i] * 3)
return recursion(n * 3, tmp)
answer = recursion(3, init)
for line in answer:
print(line)
์ฝ๋ ์ค๋ช
init = ['***', '* *', '***']
N = int(input())
์ผ๋จ N = 3์ธ ๊ฒฝ์ฐ๋ ๋ฏธ๋ฆฌ ๋ฆฌ์คํธ๋ก ๋ง๋ค์ด ์ค๋ค.
def recursion(n = 3, arr = init):
if n == N:
return arr
tmp = []
for i in range(n):
tmp.append(arr[i] * 3)
for i in range(n):
tmp.append(arr[i] + ' ' * n + arr[i])
for i in range(n):
tmp.append(arr[i] * 3)
return recursion(n * 3, tmp)
์ผ๋จ ๋ณ ํจํด์ ๋ด์ ๋น ๋ฆฌ์คํธ(tmp)๋ฅผ ์ ์ธํด ์ค๋ค.
๊ทธ๋ฆฌ๊ณ ์์์ ์ค๋ช ํ Aํํธ, Bํํธ๋ฅผ ๋๋ ์ ์คํํด ์ค๋ค.
ํ์ด์ฌ์ ๊ฐ๋จํ๊ฒ ๊ตฌํ ๊ฐ๋ฅํ๋ค. append๋ฅผ ์ด์ฉํด ํ ์ค์ฉ tmp์ ๋ด์์ค๋ค.
๊ทธ๋ฆฌ๊ณ n์ ๊ฐ์ด N์ด ๋ ๋๊น์ง ์ฌ๊ท ํจ์๋ฅผ ํธ์ถํด์ค๋ค.
n == N์ด๋ฉด ๋ฆฌ์คํธ๋ฅผ return ํด์ค๋ค.
๋ง์ง๋ง์ผ๋ก ํ ์ค์ฉ ์ถ๋ ฅํด ์ฃผ๋ฉด ๋.