BOJ : https://www.acmicpc.net/problem/11726

GitHub : https://github.com/junho0956/Algorithm/blob/master/11726/11726/%EC%86%8C%EC%8A%A41.cpp

 

2*N 타일링을 처음 풀었을 때는

이걸 어떻게 하나 했는데 손으로 작성해보니 피보나치와 같은 값을 가진다는 것을 알고 해결했었다.

그냥 규칙찾는 문제인줄 알았는데 다른 타일링 문제를 풀면서

타일링 문제를 제대로 푸는 방법을 알게 되었고

타일링문제의 기본인 2*N 타일링을 다시 풀어보았다.

여러 타일링 문제에 접목시킬 수 있는 가장 기본기 인 것 같다.

 

더보기
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
using namespace std;
#define MOD 10007
int N;
int dp[1001];
 
int solve(int len) {
// 0 미만이라면 가질 수 있는 값이 없다. ex) 1 계산시 알게됨
    if (len < 0return 0;
// 0 과 1 이라면 1이라는 값을 가질 수 있다.
    if (len <= 0return 1;
 
    if (dp[len]) return dp[len];
 
// 가로로 1칸을 준 경우 + 세로로 2칸을 준 경우
    dp[len] = (solve(len - 1+ solve(len - 2)) % MOD;
    return dp[len];
}
 
int main() {
    ios::sync_with_stdio(false);
 
    cin >> N;
    cout << solve(N);
    return 0;
}
http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter

'algorithm > BOJ' 카테고리의 다른 글

BOJ 9461번 파도반 수열  (0) 2020.01.09
BOJ 2133번 타일채우기  (0) 2020.01.09
BOJ 1699번 제곱수의 합  (0) 2020.01.07
BOJ 1912번 연속합  (0) 2020.01.07
BOJ 11054번 가장 긴 바이토닉 부분수열  (0) 2020.01.07

+ Recent posts