

이해를 위해 전 문제를 보고오자!
으악 이번에는 2x2타일이 하나 추가되었다
그렇다면 2x2를 만들때는

이렇게 3가지 경우가 있으니 초기값을 수정해주자
2xn의 직사각형을 채우는 경우의 수는
마찬가지로 2x(n-1)의 경우와 2x(n-2)경우에서

두가지를 붙이는 경우의수가 존재하기때문에 (2x1타일 두개는 2x(n-1)연산에 포함)
*2를 해주면 되겠다
nemo = {1:1,2:3} #초기화값
def nemo2(n):
if (n in nemo): #전에 계산한경우 결과값 리턴
return nemo[n]
nemo[n] = nemo2(n-1) + nemo2(n-2) * 2 #2x(n-2)에서 2x2모양이 두개이므로 *2
return nemo[n]
n = int(input())
print(nemo2(n) % 10007)
해당 글은 직접 공부한 내용을 정리한 글입니다
어설픈 코딩실력은 너그럽게 봐주시고 조언은 항상 환영입니다..!