2020. 9. 7. 22:49ใ์นดํ ๊ณ ๋ฆฌ ์์
๋ฐฑ์ค - 2 x n ํ์ผ๋ง
์ํ์ ์ ๋ชปํ๋ ํ์๋ ์ ๋ฌธ์ ๋ฅผ ์๋ฒฝํ๊ฒ ํ์ดํ๋๋ฐ ์กฐ๊ธ ์๊ฐ์ด ๊ฑธ๋ ธ๋ค.
๋ฐ๋ก ํ์ด๋ฅผ ํด๋ณด์.
์ ํ์ ์ธ DP๋ฌธ์ ์ด๋ค. (DP : ๋์ ํ๋ก๊ทธ๋๋ฐ)
๋ฌธ์ ์ ์ ๋ ฅ๊ฐ์ด 1000๊น์ง ์ด๋ฏ๋ก dp๋ฐฐ์ด์ 1001๊ฐ๋ฅผ ์์ฑํ๋ค.
n=1์ผ ๋ 1 x 2 ์ ํ์ผ ํ๋๋ง ์ฌ์ฉ --> 1๊ฐ dp[1] = 1
n=2์ผ ๋ 1 x 2์ ํ์ผ ๋๊ฐ, 2 x 1์ ํ์ผ ๋๊ฐ --> 2๊ฐ dp[2] = 2
n=3์ผ ๋ ๋งจ ์ผ์ชฝ์ 1 x 2 ๊ฐ ์์ ๋ ๊ฒฝ์ฐ --> ์์ 2 x 2 ๊ณต๊ฐ์ด ๋จ๊ณ ์ด ๊ณต๊ฐ์ n = 2์ผ ๋ ๊ฐ + ๋งจ ์ผ์ชฝ์ 2 x 1์ ํ์ผ ๋๊ฐ๊ฐ ์์ ๋ ๊ฒฝ์ฐ --> ์์ 1 x 2 ๊ณต๊ฐ์ด ๋จ๊ณ ์ด ๊ณต๊ฐ์ n = 1 ์ผ ๋ ๊ฐ
๊ฒฐ๊ตญ d[3] = d[1] + d[2]๋ผ๋ ์ ํ์์ด ๋์ถ๋๋ค.
์ด๋ ์ฝ๋๋ก 'd[n] = d[n-2] + d[n-1]'๋ก ์ฌ์ฉ์ด ๊ฐ๋ฅํ๊ณ ํผ๋ณด๋์น ์์ด๊ณผ ์ผ์นํ๋ ๊ฒ์ ๋ณผ ์ ์๋ค.
์ด๋ฅผ ๋ํ์ ์ผ๋ก ์ ๊ทผํด๋ณด๋ฉด, ๋งจ ์ค๋ฅธ์ชฝ 1 x 2๊ฐ ์์ ๋ ๋๋จธ์ง i-1๊ณต๊ฐ + ๋งจ ์ค๋ฅธ์ชฝ 2 x 1 ๊ฐ ๋ ๊ฐ ์์ ๋ ๋๋จธ์ง i-2๊ณต๊ฐ์ด๋ผ๊ณ ํ ์ ์๋ค. i-3๋ถ๋ถ์ ํ์ธํ์ง ์๋ ์ด์ ๋ ์ด๋ฏธ ์ธ์๊ธฐ ๋๋ฌธ์ด๋ค. ์ฐ๋ฆฌ๋ 2 x 1, 1 x 2ํฌ๊ธฐ์ ํ์ผ๋ฐ์ ์ฌ์ฉํ์ง ๋ชปํ๋ฏ๋ก ์๋ก ์ถ๊ฐ๋๋ ๋ถ๋ถ๋ง ์ด ๋ ๊ฐ์ง ๊ฒฝ์ฐ๋ฅผ ์ ๊ฒฝ์จ์ค๋ค๋ฉด ๋ชจ๋ ๊ฒฝ์ฐ๋ฅผ ๋ค ์ธ๋ ๊ฒ๊ณผ ๊ฐ๋ค.
10007๋ก ๋๋ ์ด์ ๋ ๋ฌธ์ ์์ ์๊ตฌํ๊ธฐ ๋๋ฌธ์ด๋ค. ์๋ง ๊ฒฝ์ฐ์ ์๊ฐ ์ปค์ก์ ๋๋ฅผ ๋๋นํด์ ์จ๋์๊ฒ ๊ฐ๋ค. ๊ทธ๋ฐ๋ฐ ์๋ฌธ์ด ์๋ค. ์ํ์๊ฐ์ด ์์ด๋ ๊ฒ ์ค๋ ๊ฑธ๋ฆฌ๋ ๊ฑธ๊น. ๋ง์ง๋ง ์ถ๋ ฅํ ๋ 10007๋ก ๋๋์ด๋ณด์๋ ๋๊ฐ๋ค. ํ .. ์๋ฌดํผ ์ ๋ต์ฒ๋ฆฌ๋ ๋ฐ๋ ์ฝ๋์ด๋ค.
์์ค ์ฝ๋๋ก ํ์ธํ์.
n = int(input())
d = [0]*1001
d[1] = 1
d[2] = 2
for i in range(3, n+1):
d[i] = (d[n-1] + d[n-2])%10007
print(d[n])