Ruff! Ruff!
#[C++] 11726 - 2×n 타일링 본문
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 |