Coding Test/BaekJoon_Python

백준 11727 <2Xn 타일링 2> Python

JunOnJuly 2023. 11. 2. 19:59
728x90

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

 

11727번: 2×n 타일링 2

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

www.acmicpc.net


https://dev-diary-0717.tistory.com/26

 

BaekJoon 11726 <2Xn 타일링>

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

dev-diary-0717.tistory.com

 

2xn 타일링 문제의 연장선상에 있는 문제라고 볼 수 있습니다.


def solution(n):
    memo = [0 for _ in range(1001)]
    memo[1] = 1
    memo[2] = 3

    i = 3
    while True:
        # 종료조건
        if i >= n+1:
            return memo[n] % 10007
        # 타일링 1 의 사고방식에서 파생
        # 마지막이 = 인 경우는 ㅁ 인 경우의 수와 수가 같으므로
        # 두 배 해서 더해주면 끝
       
        # 점화식
        memo[i] = memo[i-1] + memo[i-2]*2
        i += 1


n = int(input())
print(solution(n))

 

728x90