본문 바로가기
Algorithm/Dynamic Programming

[파이썬] 백준 11726, 11727 : 2xn 타일링, 2xn타일링 2 (실버3)

by 베짱이28호 2023. 6. 1.

[파이썬] 백준 11726, 11727 : 2xn 타일링, 2xn타일링 2 (실버3)

 

 

 

11726번: 2×n 타일링

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

www.acmicpc.net

 

 

11727번: 2×n 타일링 2

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

www.acmicpc.net


문제


풀이

방향성 생각

계단 오르기 문제와 똑같다.

ㅣ1칸,  =,ㅁ 두칸이라교 생각하면 된다

2xn 타일링 문제에서는 두 칸을 오르는 방법이 한가지, 2xn 타일링 2 문제에서는 두 칸을 오르는 방법이 두가지이다.

 

전체코드

2xn 타일링

n = int(input())
temp = {}
temp[0],temp[1],temp[2] = 1,1,2
for i in range(2,n+1):
    temp[i] = temp[i-1] + temp[i-2]
print(temp[n]%10007)

2xn 타일링 2

n = int(input())
temp = {}
temp[0],temp[1],temp[2] = 1,1,3
for i in range(3,n+1):
    temp[i] = temp[i-1] + 2*temp[i-2]
print(temp[n]%10007)

댓글