티스토리 뷰

백준

백준 소스코드 [C++] 2133 타일 채우기

Hani_Levenshtein 2020. 8. 17. 07:42

 

#include <iostream>
#include <cmath>
using namespace std;
long long int arr[31][2];
long long int tiling(int n) {
	arr[0][0] = 0;
	arr[2][0] = 3;
	arr[2][1] = 1;
	for (int i = 4;i <= n;i = i + 2) {
		arr[i][1] = arr[i - 4][0] + arr[i - 2][1];
		arr[i][0] = arr[i - 2][0] * 3 + arr[i][1] * 2;
	}
	return arr[n][0];
}
int main() {
	int n;
	cin >> n;
	if (n % 2 == 1) cout << "0";
	else cout << tiling(n);
	return 0;
}

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

 

2133번: 타일 채우기

문제 3×N 크기의 벽을 2×1, 1×2 크기의 타일로 채우는 경우의 수를 구해보자. 입력 첫째 줄에 N(1 ≤ N ≤ 30)이 주어진다. 출력 첫째 줄에 경우의 수를 출력한다. 예제 입력 1 복사 2 예제 출력 1 복��

www.acmicpc.net

 

댓글