본문 바로가기
파이썬알고리즘

20210703#(57) 백준 11727번 2 X n 타일링 2 (다이나믹 프로그래밍)

by zho 2021. 7. 3.

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

 

11727번: 2×n 타일링 2

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

www.acmicpc.net

 

n=int(input())
if n==1:
    print(1)
else:
    dp=[0 for _ in range(n+1)]
    dp[1]=1;dp[2]=3
    for i in range(3,n+1):
        if i%2==1: #홀수
            dp[i]=((dp[i-2]*4)+1)%10007
        else: #짝수
            dp[i]=((dp[i-2]*4)-1)%10007
    print(dp[n])
    

n이 1일때 for 문에서 index out of range가 뜬다는 사실을 모르고 제출했다가 틀렸음..

이후 1일때 어떻게 처리할까 고민하다 if else을 이용해 풀었고 다행히 정답처리!

 

 

728x90