본문 바로가기

개발/algorithm

[백준 11726번] 2 x n 타일링 - python

문제 링크

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

 

11726번: 2×n 타일링

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

www.acmicpc.net

풀이

- 어디서 풀어봤던 느낌이 났는데 프로그래머스에 거의 똑같은 문제가 있었다 

https://zzion2.tistory.com/55

 

[프로그래머스][level3] 2 x n 타일링 -python

문제 설명 가로 길이가 2이고 세로의 길이가 1인 직사각형모양의 타일이 있습니다. 이 직사각형 타일을 이용하여 세로의 길이가 2이고 가로의 길이가 n인 바닥을 가득 채우려고 합니다. 타일을

zzion2.tistory.com

- dp 문제 

점화식 dp[i] = dp[i-1]+dp[i-2] 

import sys
input= sys.stdin.readline

n = int(input())

if n == 1 or n == 2 :
  print(n)
else:
  dp = [0] * n
  
  dp[0] = 1
  dp[1] = 2

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

  print(dp[n-1]%10007)