본문 바로가기
코딩/백준

알고리즘 - Python / 백준 - 11726번 : 2Xn 타일링

반응형

11726번: 2×n 타일링 (acmicpc.net)

 

11726번: 2×n 타일링

2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×5 크기의 직사각형을 채운 한 가지 방법의 예이다.

www.acmicpc.net

 


풀이

  • DP문제 이므로 점화식을 찾는다.
  • 1, 2, 3, 4 단계까지 직접 찾아본후 첫 사각형이 세로 1개일때와 가로 2개일때로 구분하면 된다는 사실을 알았다
  • 이를 통해 점화식 dp[i] = dp[i-1] + dp[i-2] 를 찾았다
  • 전체 크기만큼 돌려 DP 배열을 모두 구한후 원하는 답을 출력하자

 

import sys

dp = [0]*1001
dp[0] = 0
dp[1] = 1
dp[2] = 2
dp[3] = 3

for i in range(4,1001):
  dp[i] = dp[i-1] + dp[i-2]

n = int(sys.stdin.readline())
print(dp[n]%10007)

 

 

 

반응형