Written by
최태열
on
on
[Python][프로그래머스][Level4] 3xn 타일링
[Python][프로그래머스][Level4] 3xn 타일링
코드
def solution(n):
answer=[1]*(n//2+1)
for i in range(1,n//2+1):
answer[i]=(3*answer[i-1]+2*sum(answer[:i-1]))%1000000007
return answer[n//2] if n%2==0 else 0
점화식을 구하는 문제다.
일단 가로 길이가 홀 수이면 만들 수 없으므로 0이다.
따라서 배열은 1/2 만 선언해도 된다.
가로 길이가 2일 때는 3이다.
가로 길이가 4일 때는 3*3 + 2 = 11이다.
가로 길이가 6일 때는 11*3 + 8 = 41이다.
이렇게 구하다 보면
answer[i]=3answer[i-1]+2sum(answer[:i-1]) 인 것을 알 수 있다.
Discussion and feedback