Algorithm/DP(Dynamic Programming
(Python) - 프로그래머스 : 2 x N 타일링
하눤석
2022. 1. 20. 12:56
728x90
https://programmers.co.kr/learn/courses/30/lessons/12900
- 해설 :
자연수 n이 주어질 때, 세로의 길이가 2이고 가로의 길이가 n인 공간에 2x1 또는 1x2 모양의 타일을 가득 채우려고 한다. 이 때 채울 수 있는 가짓수를 출력하면 된다.
- 풀이 :
DP문제이다. 종이에 그림을 그려가며 가짓수를 체크해 보았는데 n이 5정도 되었을 때 규칙이 보였다. n이 1씩 증가하면 n-1을 채우는 경우와 n-2를 채우는 경우가 합쳐지는 식으로 진행되어 초기값만 지정해준 후 n-1과 n-2의 값을 더해주었다.
1 2 3 4 5 6 7 | def solution(n): dp = [0]*(n+1) dp[1] = 1 dp[2] = 2 for i in range(3,n+1): dp[i] = (dp[i-1] + dp[i-2])%1000000007 return dp[n] | cs |
320x100