티스토리 뷰
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
'Algorithm > DP(Dynamic Programming' 카테고리의 다른 글
(Python) - BOJ(1463번) : 1로 만들기 (0) | 2022.01.26 |
---|---|
(Python) - BOJ(1149번) : RGB거리 (0) | 2022.01.25 |
(Python) - 프로그래머스 : 피보나치 수 (0) | 2022.01.24 |
(Python) - 프로그래머스 : 땅따먹기 (0) | 2022.01.24 |
(Python) - 프로그래머스 : N으로 표현 (0) | 2022.01.18 |
댓글
© 2022 WonSeok, All rights reserved