Tiling 2xn
ํ๋ฆฐ ์ด์
์ผ๋จ Top-down ์ฌ๊ท ๋ฐฉ์์ผ๋ก ํ ๊ฑด์ง, Bottom-Up ๋ฐ๋ณต๋ฌธ์ผ๋ก ํ ๊ฑด์ง ๊ฒฐ์ ํด์ผ ํ๋ค.
์ ๋ต์ %10007๋ก ๋๋ ์ผํ๋๋ฐ ๋๋์ง ์์์ ํ๋ ธ๋ค. ๊ทธ๋์ ์ต์ข ํด์ธ go(N)๋ฆฌํด๊ฐ๋ง %10007๋ก ๋ฐ๊พธ๋ ๋ ํ๋ ธ๋ค. dp[N] = go(N-1) + go(N-2);์ด๋ค. ์ด ๋ํด์ง๋ ๋๊ฐ์ ๊ฐ์ ๋ชจ๋ %10007ํด์ฃผ๋๊น ์ ๋ต์ฒ๋ฆฌ๋๋ค. =>๋๋ฌด ์ฌํ ํฌ์์ ๊ฐ๋ค ๋ค ๋ํ๊ณ ๋ ํ /2 ํ ๊ฐ != /2 ๋จผ์ ํ๊ณ ๋ค ๋ํ ๊ฐ ๋ค๋ฅด๋ฏ์ด, ์ฌ๊ธฐ์๋ ๋น์ทํ ์ด์น ์๋๊น ์ง์ํ๋ค..
Top-down์ ๋ฌธ์ ๋ฅผ ๊ฐ์ฅ ์์ ๋ฌธ์ ๋ก ์ชผ๊ฐ๊ณ , ๊ทธ ํด๋ฅผ dp๋ฐฐ์ด์ ์ ์ฅํด์ผํ๋ค. ๊ฐ์ฅ ์์ ํด๋ dp[0]๊ณผ dp[1]์ด๋ผ๊ณ ํ ์ ์๋ค. dp[1] = 1์ด๊ณ , dp[2] = 2์ด๋ค. dp[0]์ ํ๋๋ ๋์ง ์๋ ๋ฐฉ๋ฒ์ 1๊ฐ์ง๋ก ์ณ์ 1์ด๋ผ๊ณ ํ๋ค. ๋ฐ๋ผ์ ์๋ ์ฝ๋์์ ์ฌ๊ทํจ์์ ์ฌ๊ทํจ์๋ฅผ ์ข ๋ฃํ๋ ๋ฆฌํดํ๋ ์กฐ๊ฑด์ N์ด 0์ดํ์ผ ๋ 0์ ๋ฆฌํดํ๋ ๊ฒ์ด ์๋๋ผ N์ด 0์ผ ๋, N์ด 1์ผ ๋ dp[0] = 1, dp[1] = 1 ์ ์ฅํด ๋๊ณ , ์ดํ์ dp[N]์ด 0๋ณด๋ค ํฐ ๊ฐ์ด ๋ค์ด์๋ค๋ฉด ์ด๊ฒ์ ์์ ๋ฌธ์ ๋ค๋ก๋ถํฐ ํด๋ฅผ ๊ตฌํด์ ์ ์ฅํ๋ค๋ ์๋ฏธ์ด๋ฏ๋ก dp[N]์ ๋ฐ๋ก ๋ฆฌํดํ๋ฉด ๋๋ค. ์๋์ ์ ๋ต์ฝ๋๋ฅผ ์ฐธ์กฐํ์.
์ ๋ต ์ฝ๋ : N=0,N=1์ผ ๋, dp๋ฐฐ์ด์ ๊ฐ์ ์ ์ฅํ๊ณ , ์ ์ฅํ๊ณ ๋ ํ dp[N]์ ๋ฆฌํดํ๋ค! ์ด๋ก์จ dp[2]๊ฐ ๊ตฌํด์ง๊ณ , ์ฌ๊ทํจ์๋ค์ด ๋ฆฌํด๋๋ฉด์ ์ต์ข ์ ์ผ๋ก ํฐ ๋ฌธ์ ์ ํด๋ ๊ตฌํ ์ ์๊ฒ ๋๋ค!
Last updated
Was this helpful?