[BOJ][๐ก4][๋ฐฑ์ค#02448] ๋ณ ์ฐ๊ธฐ - 11
์์ฑ:    
์ ๋ฐ์ดํธ:
์นดํ ๊ณ ๋ฆฌ: BOJ Gold IV
๋ฌธ์ ์ถ์ฒ
๋ฌธ์
์์ ๋ฅผ ๋ณด๊ณ ๊ท์น์ ์ ์ถํ ๋ค์ ๋ณ์ ์ฐ์ด ๋ณด์ธ์.
์ ๋ ฅ
์ฒซ์งธ ์ค์ N์ด ์ฃผ์ด์ง๋ค. N์ ํญ์ 3ร2kย ์์ด๋ค. (3, 6, 12, 24, 48, โฆ) (0 โค k โค 10, k๋ ์ ์)
์ถ๋ ฅ
์ฒซ์งธ ์ค๋ถํฐ N๋ฒ์งธ ์ค๊น์ง ๋ณ์ ์ถ๋ ฅํ๋ค.
์์
์ ๋ ฅ
24
์ถ๋ ฅ
*
* *
*****
* *
* * * *
***** *****
* *
* * * *
***** *****
* * * *
* * * * * * * *
***** ***** ***** *****
* *
* * * *
***** *****
* * * *
* * * * * * * *
***** ***** ***** *****
* * * *
* * * * * * * *
***** ***** ***** *****
* * * * * * * *
* * * * * * * * * * * * * * * *
***** ***** ***** ***** ***** ***** ***** *****
My Sol
def foo(ni, nj, M):
if M == 3:
k = 0
while k < 3:
for j in range(-k, k+1):
mat[ni+k][nj+j] = '*'
k += 1
mat[ni+1][nj]=' '
return
H = M//2
foo(ni, nj, H)
foo(ni+H, nj-H, H)
foo(ni+H, nj+H, H)
N = int(input())
mat = [[' ']*(2*N-1) for _ in range(N)]
foo(0, N-1, N)
for lst in mat:
print(*lst, sep='')
๊ฐ ์ผ๊ฐํ์ ๋งจ ์์ ์ขํ๋ฅผ ๊ธฐ์ค์ ์ผ๋ก ๋๊ณ , ํธ๋ฆฌ ํ์์ผ๋ก ๋๋์ด ๋ฒ์๊ฐ 1/2๋ฐฐ์ฉ ์์์ง ๋๋ง๋ค 3๊ฐ์ ๊ธฐ์ค์ ์ผ๋ก ๊ฐ๋ผ์ง๋ ๋ฐฉ์์ ์ฌ์ฉํ์๋ค. ์ดํ, ์ ๋ฌํด์ค ํฌ๊ธฐ๊ฐ 3์ด ๋๋ฉด, ๊ฐ์ฅ ์์ ๋จ์์ ์ผ๊ฐํ์ด ๋๋ฏ๋ก, ์ด๋ฅผ ์ขํ์ ํ์ํด์ค ๋ค, returnํ๋ฉฐ ๊ฐ์ฅ ์์ ์ผ๊ฐํ์ ๋ํ ์์ ๋ค์ ์งํฉ์ผ๋ก ํ์ด์ฃผ๋ฉด ๋๊ฒ ๋ค.
๊ฒฐ๊ณผ
๋ง์์ต๋๋ค!!
๋ชจ๋ฒ๋ต์
import math
def makeStar(n):
star.append([' * ',' * * ','*****'])
for k in range(1,n+1):
listT = list()
for i in range(len(star[k-1])):
listT.append(' '*3*2**(k-1) + star[k-1][i] + ' '*3*2**(k-1))
for i in range(len(star[k-1])):
listT.append(star[k-1][i] + ' ' + star[k-1][i])
star.append(listT)
star = list()
n = int(input())
n = int(math.log2(n//3))
makeStar(n)
for i in range(len(star[n])):
print(star[n][i])
์ฐ์ฐ์๊ฐ์ด ์ ๋ง ๋น ๋ฅธ ํ์ด๊ฐ ์์ด ๋ถ์ํด๋ณด๋ ค ํ๋ค. DP๋ฅผ ์ด์ฉํ ๊ฒ์ฒ๋ผ ๋ณด์ด๊ณ , ๊ฐ์ฅ ์์ ๋จ์ ์ผ๊ฐํ์ ๋ฐฐ์ด star์ 0๋ฒ ์ธ๋ฑ์ค์ ์ ์ฅํ์๋ค. ์ดํ ๊ท์น์ฑ์ ๋ง๊ฒ ์์ ์ผ๋ก ๊ณต๋ฐฑ๊ณผ star ๋ฐฐ์ด ๋ด์ ๋ณ์ ํฌ๊ธฐ๋ฅผ listT์ ์ ์ฅํ์ฌ star์ ์๋ก์ด ์ธ๋ฑ์ค์ ์ถ๊ฐํ์๋ค. ์ฆ, ์ธ๋ฑ์ค๊ฐ ์ปค์ง ๋๋ง๋ค ์ด์ ์ธ๋ฑ์ค์ ์ผ๊ฐํ์ ๋จ์๋ก ํ์ฌ 3๊ฐ๋ฅผ ๋ชจ์ ํฐ ์ผ๊ฐํ์ ๋ง๋๋ ๋ฐฐ์ด์ ๊ณ์ฐํ๋ ๊ฒ์ด๋ค.
์ดํ ์ ๋ ฅ๊ฐ์ 3์ผ๋ก ๋๋ ๊ฐ์ log2๋ฅผ ์ทจํด ๊ตฌํด ๋ฐ๋ณตํ์๋ฅผ ๊ฒฐ์ ํด์ฃผ๊ณ , star ๋ฐฐ์ด์ ๋งจ ๋ง์ง๋ง ์ธ๋ฑ์ค์ ์ผ๊ฐํ์ ์ถ๋ ฅํด์ฃผ๋ฉด ๋๋ค.
๋๊ธ๋จ๊ธฐ๊ธฐ