티스토리 뷰

문제

 

https://www.acmicpc.net/problem/11727

 

풀이

 

취준생 때 이해하기 힘들어서 포기했던 문제다.

시간을 두고 천천히 그림을 그려가면서 생각해보면 점화식을 생각해낼 수 있습니다.

2x2 타일을 채우는 경우를 그림으로 그려보고, 2x3 을 채우는 방식을 생각해봅니다.

2x3은 앞 쪽에 2x1 타일을 채우고 나머지를 채우는 경우와 뒤 쪽에 2x1을 채우고 나머지를 채우는 경우로 생각 할 수 있습니다.

 

소스코드

 

// boj.kr/11727
// 2xn 타일링

#include <iostream>

using namespace std;

#define MOD 10007

const int MAX_N = 1000;

long long gCache[MAX_N+1];

int main(){

    ios::sync_with_stdio(false);
    cin.tie(0);

    // N = 1 일 때 경우의 수는 1가지.
    // N = 2 일 때 경우의 수는 3가지. 
    
    int n;

    cin  >> n;

    gCache[1] = 1;
    gCache[2] = 2;

    for(int i = 3; i <= n; i++){
        
        gCache[i] = (gCache[i-1]%MOD) + (gCache[i-2]%MOD);
    }

    cout << gCache[n] % MOD << "\n";
    
    return 0;
}

 

'알고리즘 > 백준' 카테고리의 다른 글

[백준] 14476번 최대공약수 하나 빼기  (0) 2019.11.11
[백준] 6569번 몬드리안의 꿈  (1) 2019.11.05
[백준] 1563번 개근상  (0) 2019.11.04
[백준] 15686번 치킨 배달  (0) 2018.05.27
[백준] 13460 구슬 탈출 2  (0) 2018.04.13
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함