Notice
Recent Posts
Recent Comments
Link
«   2024/09   »
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
29 30
Tags
more
Archives
Today
Total
관리 메뉴

Ruff! Ruff!

#[C++] 11726 - 2×n 타일링 본문

백준

#[C++] 11726 - 2×n 타일링

maeng-kim 2024. 7. 3. 02:57

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


문제

2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오.

아래 그림은 2×5 크기의 직사각형을 채운 한 가지 방법의 예이다.

입력

첫째 줄에 n이 주어진다. (1 ≤ n ≤ 1,000)

출력

첫째 줄에 2×n 크기의 직사각형을 채우는 방법의 수를 10,007로 나눈 나머지를 출력한다.


#include <iostream>
using namespace std;

int num[1001];

int dp(int b){
    if(b==1) return num[b]=1;
    if(b==2) return num[b]=2;
    if(num[b]!=0) return num[b];
    return num[b]=(dp(b-1)+dp(b-2)) %10007;
}

int main()
{
    int a;
    cin >> a;
    int sol = dp(a);
    cout << sol;

    return 0;
}

다시 시작하는 백주니입니다..

DP는 해도해도 모르겠으니 DP 위주로 쫌쫌따리 해볼게여

 

이래저래 열심히 그림을 그려보았지만 역시 최고의 방법은 그냥 해보는 것입니다.

처음에는 뭔가 수학적인 느낌으로 접근해보았지만

아닌 것 같아서 그냥 그림 그리면서 했습니다

그렇게 점화식을 찾아서 재귀로 풀었습니ㄷ ㅏ !!

'백준' 카테고리의 다른 글

#[C++] 9095 - 1,2,3 더하기  (0) 2024.07.04
#[C++] 11722 - 2×n 타일링 2  (0) 2024.07.04
#[C++] 2331 - 반복수열  (1) 2024.02.27
#[C++]2875 - 대회or인턴  (0) 2024.02.21
#[C++]1181 - 단어정렬  (0) 2024.02.21