본문 바로가기
백준/C++

백준 11726번 : 2xn 타일링 [C++]

by 대니스 2022. 9. 4.

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

 

11726번: 2×n 타일링

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

www.acmicpc.net

소스 코드 :

#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <vector>
using namespace std;

int main()
{
	ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
	int n;
	int result = 0;
	cin >> n;
	vector<int> v(n);

	v[0] = 1;
	v[1] = 2;

	for (int i = 2; i < n; i++)
	{
		v[i] = (v[i - 1] + v[i - 2]) % 10007;
	}

	cout << v[n - 1];
}

마무리 : 이 문제는 입력된 크기의 직사각형 타일로 1×2, 2×1 타일을 채우는 문제로 계산 문제이다. 그래서 먼저 dp로 입력 숫자를 눌려서 풀어보았는데 dp로 풀 수 있음을 알고 코드를 짰다.