본문 바로가기
아카이브

백준 11727번 / 2 x n 타일링2 (Python, 파이썬, 백준, 알고리즘)

by PilYeooong 2020. 6. 26.

문제

2×n 직사각형을 1×2, 2×1과 2×2 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오.

아래 그림은 2×17 직사각형을 채운 한가지 예이다.

입력

첫째 줄에 n이 주어진다. (1 ≤ n ≤ 1,000)

출력

첫째 줄에 2×n 크기의 직사각형을 채우는 방법의 수를 10,007로 나눈 나머지를 출력한다.

예제 입력 1

2

예제 출력 1

3

예제 입력 2

8

예제 출력 2

171

예제 입력 3

12

예제 출력 3

2731

 

풀이

n = int(input())

dp = [0, 1, 3]

if n == 1:
    print(dp[1])
elif n == 2:
    print(dp[2])
else:
    for i in range(3, n+1):
        dp.append(2 * dp[i-2] + dp[i-1])
    print(dp[n] % 10007)

 

11726번과 풀이는 동일하다. 점화식을 구해 적용하면 쉽게 구현이 가능하다.

'아카이브' 카테고리의 다른 글

200626 / TIL  (0) 2020.06.26
백준 9095번 / 1, 2, 3 더하기 (Python, 파이썬, 백준, 알고리즘)  (0) 2020.06.26
200625 / TIL  (0) 2020.06.25
200624 / TIL  (0) 2020.06.24
200623 / TIL  (0) 2020.06.24