관리 메뉴

커리까지

[백준] 11727번 2xn 타일링 2 파이썬 본문

알고리즘/풀이

[백준] 11727번 2xn 타일링 2 파이썬

목표는 커리 2023. 2. 11. 07:13
728x90
SMALL

문제

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

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

img

입력

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

출력

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

예제 입력 1
2
예제 출력 1
3
예제 입력 2
8
예제 출력 2
171
예제 입력 3
12
예제 출력 3
2731

제출 답안

  • 2x1, 2x2, 2x3까지 방법의 수를 구한다.
  • 규칙을 보면 n-1 + (n-2) * 2 한 값과 같다.
'''
1. 아이디어
- 2x1, 2x2, 2x3까지 방법의 수를 구한다.
- 규칙을 보면 n-1 + (n-2) * 2 한 값과 같다.
3. 변수
- dp []
'''

import sys
input = sys.stdin.readline

n = int(input())
dp = [1, 3, 5]
for i in range(3, n):
    dp.append((dp[i-2] * 2) + dp[i-1])

print(dp[n-1] % 10007)
728x90
LIST