가오리의 코딩일기

바닥공사 본문

Python/이코테

바닥공사

류경혜 2022. 7. 13. 14:00

가로의 길이가 N, 세로의 길이가 2인 직사각형 형태의 얇은 바닥이 있다

태일이는 이 얇은 바닥을 1x2, 2x1의 덮개, 2x2의 텁개를 이용해 채우고자 한다

이때 바닥을 채우는 모든 경우의 수를 구하는 프로그램을 작성하시오 

예를 들어 2x3 크기의 바닥을 채우는 경우의 수는 5가지이다

 

입력조건 

→ 첫째 줄에 N이 주어진다 (1 <=N <=1,000)

출력조건

→ 첫째 줄에 2xN 크기의 바닥을 채우는 방법의 수를 796,796으로 나눈 나머지를 출력한다

 

POINT

→ 백준 2xn 타일링(2)와 비슷한 문제인 듯

→ 점화식 : dp[i] = dp[i-1]+ dp[i-2]*2

n = int(input())
arr = [0,1,3]
for i in range(3, n+1):
    arr.append(arr[i-1]+arr[i-2]*2)
print(arr[n] %796796)

'Python > 이코테' 카테고리의 다른 글

효율적인 화폐 구성  (0) 2022.07.14
개미전사  (0) 2022.07.12
1로 만들기  (0) 2022.07.11
떡볶이 떡 만들기  (0) 2022.07.05
부품 찾기  (0) 2022.07.04