1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include <iostream>
using namespace std;
 
bool col[26];
bool inc[52];
bool desc[52];
int n,cnt;
 
void dfs(int i)
{
    if (i == n+1)
    {
        cnt++;
        return;
    }
    for (int j = 1; j <= n; j++)
    {    
        if (!col[j] && !inc[i + j] && !desc[n - i + j])
        {    
            col[j] = inc[i + j] = desc[n - i + j] = true;
            dfs(i + 1);
            col[j] = inc[i + j] = desc[n - i + j] = false;
        }
    }
 
}
 
int main()
{
    cin >> n;
 
    dfs(1);
 
    cout << cnt;
    return 0;
}
cs


여기 복붙하면 바로 나오네 ㄷㄷ