algorithm/CodingTest

[GDSC Week4-2] 백준 11726번:: 2xN 타일링 (C++)

wingbeat 2021. 10. 30. 02:57

 

* 생각한 아이디어 및 문제 풀이

dp[n] = dp[n-1] + dp[n-2];

dp[1], d[2]는 초기에 선언해준다.

 

 

* 코드

#include <iostream>
using namespace std;

int main(){
    ios_base::sync_with_stdio(false); 
    cin.tie(0); cout.tie(0);
    
    int N;
    cin >> N;
    
    int dp[1001];
    dp[1] = 1; dp[2] = 2;
    
    if(N > 2){
        for(int i=3; i<=N; i++){
            dp[i] = (dp[i-1] + dp[i-2]) % 10007;
        }
    }
    cout << dp[N];
}

 

* 회고

네모가 같은 모양인 것을 두번으로 카운트해서 처음에 어려움이 있었다.

문제가 어떤 형태로 만들어지는지 그림으로 그려서 분석해보고,

문제의 패턴을 분석하는 것이 중요하다는 생각이 들었다.

 

 

* 문제 링크 : https://www.acmicpc.net/problem/11726

 

11726번: 2×n 타일링

2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×5 크기의 직사각형을 채운 한 가지 방법의 예이다.

www.acmicpc.net

* 참고 링크 : https://assb.tistory.com/entry/%EB%B0%B1%EC%A4%80-11726%EB%B2%88-2xn-%ED%83%80%EC%9D%BC%EB%A7%81

 

백준 11726번: 2xn 타일링

https://www.acmicpc.net/problem/11726 11726번: 2×n 타일링 2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×5 크기의 직사각형을 채운 한 가지..

assb.tistory.com