본문 바로가기

알고리즘/백준

[백준 2133][파이썬] 타일 채우기

https://www.acmicpc.net/problem/2133

 

2133번: 타일 채우기

3×N 크기의 벽을 2×1, 1×2 크기의 타일로 채우는 경우의 수를 구해보자.

www.acmicpc.net

 

import sys

input = sys.stdin.readline

N = int(input())

if N % 2:
  print(0)
else:
  n = N // 2

  dp = [0] * (n+1)
  dp[0] = 1
  dp[1] = 3

  for i in range(2, n+1):
    dp[i] = dp[i-1] * 3 + sum(dp[:i-1]) * 2

  print(dp[n])