[Programmers] 2 x n ํ์ผ๋ง
Updated:
2 x n ํ์ผ๋ง
2ย xย nย ํ์ผ๋ง ์ ํด๋ฆญํ๋ฉด ๋ฐ๋ก ์ด๋ํ๋ค.
์ธ ๋ค๊ฐ์ง ์์๋ฅผ ๊ฐ์ง๊ณ ๋ฌธ์ ๋ต์ ์ฐพ๋ค๋ณด๋ฉด ๊ท์น์ด ๋ณด์ธ๋ค.
์ด ๋ฌธ์ ๋ ๋คํํ ์ฌ์์ ๊ท์น์ ๊ธ๋ฐฉ ๋ฐ๊ฒฌํ ์ ์์ง๋ง ๋ฌดํฑ๋๊ณ ํ์ด๋๊ณ ๋ณด๋ฉด ๊ท์น์ ์ฐพ๊ธฐ ์ด๋ ค์ธ ์๋ ์๋ค.
๋๋ฌธ์ ์ด์ ๊ณ์ฐ ๊ฒฐ๊ณผ๋ฅผ ์ด์ฉํ๋ ๋ฐฉ๋ฒ์ ์ ์ฐพ์๋ด์ผ ํ๋ค.
๊ฐ๋ก ๊ธธ์ด๊ฐ N-1 ์ธ๊ฒฝ์ฐ ์ธ๋ก๋ก ํ ์นธ์ ์ถ๊ฐํ๋ฉด N ๊ธธ์ด๋ฅผ ๋ง๋ค ์ ์๋ค.
๋ ๊ฐ๋ก ๊ธธ์ด๊ฐ N-2 ์ธ ๊ฒฝ์ฐ ๊ฐ๋ก ํ์ผ์ ๋ ๊ฐ ์ถ๊ฐํ๋ฉด N ๊ธธ์ด๋ฅผ ๋ง๋ค ์ ์๋ค.
์ด ๊ฒฝ์ฐ๋ N-1 ์ ํฌํจ๋๊ธฐ ๋๋ฌธ์ ๋ํ์ง ์๋๋ค.
๋ฐ๋ผ์ ์ ํ์์ dp[i] = dp[i - 1] + dp[i - 2] ๊ฐ ๋๋ค.
def solution(n):
dp = [0 for _ in range(60001)]
dp[1] = 1
dp[2] = 2
for i in range(3, n + 1):
dp[i] = (dp[i - 1] + dp[i - 2]) % 1_000_000_007
return dp[n]
Leave a comment