Algorithm/프로그래머스
[프로그래머스]연습문제 : 2 x n 타일링 (level 3)(c++)
HBGB
2020. 6. 22. 19:55
https://programmers.co.kr/learn/courses/30/lessons/12900
코딩테스트 연습 - 2 x n 타일링
가로 길이가 2이고 세로의 길이가 1인 직사각형모양의 타일이 있습니다. 이 직사각형 타일을 이용하여 세로의 길이가 2이고 가로의 길이가 n인 바닥을 가득 채우려고 합니다. 타일을 채울 때는 ��
programmers.co.kr
DP
#include <string>
#include <vector>
using namespace std;
const long long MOD = 1000000007;
const int MAX = 60000;
long long D[MAX + 1];
int solution(int n) {
D[0] = 1;
D[1] = 1;
// 점화식 : D[n] = D[n - 1] + D[n - 2
for (int i = 2; i <= n; ++i)
{
D[i] = (D[i - 1] + D[i - 2]) % MOD;
}
return D[n];
}
BOJ 11726번 문제와 동일하다
점화식을 잘 세워서 DP로 풀면 된다.