본문 바로가기

공부/백준\BeakJoon

[BEAKJOON] 백준 11727번 : 2xn 타일링 2

반응형

앞서

11726번: 2Xn 타일링을 했었다.

https://na0-0.tistory.com/120

 

[BEAKJOON] 백준 11726번 : 2xn 타일링

https://www.acmicpc.net/problem/11726 11726번: 2×n 타일링 2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×5 크기의 직사각형을 채운 한 가지 방

na0-0.tistory.com

 

백준 11727번 : 2xn 타일링 2도 있길래 바로 해주었다.

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

 

11727번: 2×n 타일링 2

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

www.acmicpc.net

문제

앞을 이해했으면, 바로 풀 수 있는 문제이다.

2x2의 타일이 하나 추가 되었으니, 

n-2의 값에 곱하기 2를 해서 값을 더해주면 끝이다.

 

아래와 같이 확인을 했다.

# 1 -> 1 : |
# 2 -> 3 : ||, =, O
# 3 -> 5 : |||, |=, =|, |O, O|
# 4 -> 11: ||||, |=|, =||, |O|, O||, ||=, ==, O=, ||O, =O, OO

 

문제 해결 코드

num = int(input())

dp = list()
dp.append(1)
dp.append(3)

for i in range(2, num):
    dp.append((dp[i-1]+(dp[i-2])*2)%10007)

print(dp[num-1])
반응형