BaekJoon
9663번 N-Queen
GamJia
2023. 4. 4. 09:04
단계별로 풀어보기 - 백트래킹- 5단계
https://www.acmicpc.net/problem/9663
#include <iostream>
using namespace std;
int N,board[15],count=0;
void dfs(int x)
{
if (x==N)
{
count++;
return;
}
for(int i=0;i<N;i++)
{
bool flag=1;
for(int j=0;j<x;j++)
{
if(board[j]==i||abs(x-j)==abs(i-board[j]))
{
flag=0;
break;
}
}
if(flag==1)
{
board[x]=i;
dfs(x+1);
}
}
}
int main() {
cin>>N;
dfs(0);
cout<<count;
}