๋ฐฑ์ค (boj) ํ์ด์ฌ - 1003 ๋ฒ : ํผ๋ณด๋์น ํจ์
๋ฌธ์ ๋งํฌ : https://www.acmicpc.net/problem/1003
1003๋ฒ: ํผ๋ณด๋์น ํจ์
๊ฐ ํ ์คํธ ์ผ์ด์ค๋ง๋ค 0์ด ์ถ๋ ฅ๋๋ ํ์์ 1์ด ์ถ๋ ฅ๋๋ ํ์๋ฅผ ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถํด์ ์ถ๋ ฅํ๋ค.
www.acmicpc.net
๋ฌธ์ ๋ถ๋ฅ : ๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ https://infinitt.tistory.com/246
์๊ณ ๋ฆฌ์ฆ - ๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ (Dynamic Programming)
๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ (Dynamic Programming) : DP ๊ฐ๋ : ๋ฌธ์ ๋ฅผ ๋ ์์ ๋จ์๋ก ์ชผ๊ฐ์ด ํด๊ฒฐํ๋ ์๊ณ ๋ฆฌ์ฆ. (๋ถํ ์ ๋ณต ์๊ณ ๋ฆฌ์ฆ๊ณผ ๋น์ทํ๋ค. ์ฐจ์ด์ ์ ๋ฐ๋ก ์๋ซ์ค.) ํต์ฌ์, ๊ทธ ์์ ๋จ์์ ๋ฌธ์ ๋ค์ด ๋ฐ๋ณตํด์..
infinitt.tistory.com
ํผ๋ณด๋์น ํจ์๋ฅผ C++์์ค๋ก ์ ๊ณตํ๊ณ , ๊ฑฐ๊ธฐ์ ๊ด๋ จํ์ฌ 0๊ณผ 1์ด ์ถ๋ ฅ๋ ํ์๋ฅผ ๊ตฌํ๋ ๋ฌธ์ ์๋ค.
0๊ณผ 1์ ์ถ๋ ฅ๋ ํผ๋ณด๋์น์ ๋ง์ฐฌ๊ฐ์ง๋ก ๊ฐ์ ์ ํ์์ด ์ธ์์ง๋ค.
์ ํ์ : dp[i] = dp[i-1] + dp[i-2]
๋ค๋ง 0๊ณผ 1์ด๋ฏ๋ก (2๊ฐ์ง ์ด๋ฏ๋ก) 2์ค ๋ฐฐ์ด์ ์ฌ์ฉํด์ฃผ๋ฉด ๋๋ค.
*์ ๋ต ์ฝ๋(Python)
T = int(input())
dp = [(1,0),(0,1),(1,1),(1,2)] + [(0,0) for _ in range(37)] #๋ฌธ์ ์์ N์ 40๊น์ง๋ผ๊ณ ๋์จ๋ค.
for _ in range(T):
N = int(input())
for i in range(4,N+1):
dp[i] = ( dp[i-1][0] + dp[i-2][0] , dp[i-1][1] + dp[i-2][1] )
print(*dp[N])