코드 복사/붙여넣기 하는 당신이 아름답습니다.

2133 : 타일 채우기

풀이

타일은 n이 짝수인 경우에만 완벽히 채울 수 있다.

2*1 타일을 맨위와 맨아래에 일렬로 배치하는 경우에 유의하자.

dp[i] = dp[i-2] * 3 + dp[i-j] * 2 (4 <= i, 4 <= j <= i)

코드

#include <stdio.h>
int main() {
	int n, d[31] = { 1,0,3 };
	scanf("%d", &n);
	for (int i = 4; i <= n; i += 2) {
		d[i] = d[i - 2] * 3;
		for (int j = 4; j <= i; j += 2) d[i] += d[i - j] * 2;
	}
	printf("%d", d[n]);
	return 0;
}

아무말

백준, 백준 온라인 저지, BOJ, Baekjoon Online Judge, C, C++, 씨, 씨쁠쁠, JAVA, algorithm, 자바, 알고리즘, 자료구조, 문제, 문제 풀이, 풀이

wookje.kwon's profile image

wookje.kwon

2017-08-05 23:06

Read more posts by this author