저번과 비슷한 맥락의 문제였기 때문에 어렵지 않았다 !
import sys
n = int(sys.stdin.readline())
dp = [0]*(n+2)
dp[1] = 1
dp[2] = 3
for i in range(3, n+1):
dp[i] = dp[i-2] * 2 + dp[i-1]
print(dp[n]%10007)
점화식 찾는 게 조오금 어려웠다... 내가 이래서 수2도 못했는데... (요즘 수2랑 다름)
규칙을 보면,
- n=1일 때, 방법의 수: 1
- n=2일 때, 방법의 수: 3
- n=3일 때, 방법의 수: 5
- n=4일 때, 방법의 수: 11
로 구성되어 있다. 이에 따른 점화식은
n의 방법수 = n-1의 방법 수 + n-2의 방법 수 * 2
이다.
이를 DP로 이용하여 풀이하는 것은 여러번 언급하였기 때문에 패스...
자세한 풀이는 아래의 링크를 참고하자!
이로써 하루에 3문제 정리 완료 ~