풀이
타일은 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, 자바, 알고리즘, 자료구조, 문제, 문제 풀이, 풀이