본문 바로가기

알고리즘 문제

Programmers Level 6 3xN 타일링

def tiling(n):
if n%2==1:return False
else:
dp=[[0]*3 for i in range(10000)]
dp[2][0]=dp[2][1]=dp[2][2]=1
for i in range(4,n+1,2):
dp[i][0] = 2 * dp[i-2][0] + dp[i-2][1] + dp[i-2][2]
dp[i][1] = dp[i-2][0] + 2 * dp[i-2][1] + dp[i-2][2]
dp[i][2] = dp[i-2][0] + dp[i-2][1] + dp[i-2][2]
return (dp[i][0] + dp[i][1] + dp[i][2])%100000
# 아래는 테스트로 출력해 보기 위한 코드입니다.
print(tiling(119))