[백준 9663번 C/C++] N-Queen
[백준 9663번 C/C++] N-Queen
https://www.acmicpc.net/problem/9663
해결전략
Backtracking 백트래킹
코드
#include <iostream>
using namespace std;
int n;
int col[15];
int answer = 0;
bool isPossible(int level) {
for (int i = 0; i < level; i++) {
// 같은 열에 있는 경우
if (col[i] == col[level])
return false;
// 대각선 상에 있는 경우
if (level - i == abs(col[level] - col[i]))
return false;
}
return true;
}
void nQueen(int level) {
if (level == n) {
answer++;
return;
}
for (int i = 0; i < n; i++) {
col[level] = i; // 현재 level 행에서 i열에 퀸을 놓음
if (isPossible(level)) // 유망한지 검사
nQueen(level + 1); // 다음 행으로 넘어감
}
}
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
cin >> n;
nQueen(0);
cout << answer << "\n";
return 0;
}
'⭐ 코딩테스트 > 백준' 카테고리의 다른 글
[백준 10844번 C/C++] 쉬운 계단 수 (0) | 2023.06.20 |
---|---|
[백준 1966번 C/C++] 프린터 큐 (0) | 2023.06.17 |
[백준 1463번 C/C++] 1로 만들기 (0) | 2023.06.15 |
[백준 11866번 C/C++] 요세푸스 문제 0 (0) | 2023.06.14 |
[백준 11047번 C/C++] 동전 0 (1) | 2023.06.13 |
댓글
이 글 공유하기
다른 글
-
[백준 10844번 C/C++] 쉬운 계단 수
[백준 10844번 C/C++] 쉬운 계단 수
2023.06.20 -
[백준 1966번 C/C++] 프린터 큐
[백준 1966번 C/C++] 프린터 큐
2023.06.17 -
[백준 1463번 C/C++] 1로 만들기
[백준 1463번 C/C++] 1로 만들기
2023.06.15 -
[백준 11866번 C/C++] 요세푸스 문제 0
[백준 11866번 C/C++] 요세푸스 문제 0
2023.06.14