# Link

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

 

2698번: 인접한 비트의 개수

첫째 줄에 테스트 케이스의 수 T(1 ≤ T ≤ 1,000)가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 수 2개가 공백으로 구분되어 이루어져 있다. 첫 번째 수는 n이고, 두 번째 수는 k이다. n과

www.acmicpc.net

 

 

# Code - C++

//
//  BOJ
//  ver.C++
//
//  Created by GGlifer
//
//  Open Source

#include <iostream>
#include <cstring>

using namespace std;

#define endl '\n'
#define len(x) (int)(x).length()
#define size(x) (int)(x).size()
#define str(x) to_string(x)
#define error logic_error("line " + str(__LINE__))

// Set up : Definitions
/* None */

// Set up : Global Variables
/* None */

// Set up : Functions Declaration
/* None */


int main()
{
    // Set up : I/O
    ios::sync_with_stdio(false);
    cin.tie(nullptr);

    // Process
    const int MAX = 100;
    int dp[MAX+1][MAX+1][2];
    memset(dp, 0, sizeof(dp));

    dp[1][0][0] = dp[1][0][1] = 1;
    for (int i=2; i<=MAX; i++) {
        for (int j=0; j<=i-1; j++) {
            dp[i][j][0] = dp[i-1][j][0] + dp[i-1][j][1];
            dp[i][j][1] = dp[i-1][j][0] + ((j > 0) ? dp[i-1][j-1][1] : 0);
        }
    }

    // Set up : Input
    int T; cin >> T;

    while (T--) {
        int n, k;
        cin >> n >> k;

        // Process
        int ans = dp[n][k][0] + dp[n][k][1];

        // Control : Output
        cout << ans << endl;

    }
}

// Helper Functions
/* None */

 

 

지적, 조언, 첨언 모두 환영합니다!!!

+ Recent posts