#include <iostream>
 
int dp[31] = {};
 
int main()
{
    int n = 0;
    std::cin >> n;
 
    if (n % 2 == 1)
    {
        std::cout << 0;
        return 0;
    }
 
    dp[0] = 1;
    dp[1] = 0;
    dp[2] = 3;
 
    for (int i = 4; i <= n; i += 2)
    {
        dp[i] = dp[i - 2] * 3;
 
        for (int j = 4; i - j >= 0; j += 2)
        {
            dp[i] += dp[i - j] * 2;
        }
    }
 
    std::cout << dp[n];
    return 0;
}

규칙

4개 -> 2개 * 3 + 4개 2

6개 -> 4개 * 3 + 2개 * 2 + 6개 2

8개 -> 6개 * 3 + 4개 * 2 + 2개 *2 + 8개 + 2

'오늘의 알고리즘' 카테고리의 다른 글

[C++] 백준 2178 미로 탐색  (0) 2022.05.07
[C++] 백준 1260 DFS와 BFS  (0) 2022.05.06
[C++] 백준 2294 동전2  (0) 2022.05.04
[C++] 백준 9461번 파도반 수열  (0) 2022.05.04
[C++] 백준 2239 동전1  (0) 2022.05.03

+ Recent posts