티스토리 뷰
https://programmers.co.kr/learn/courses/30/lessons/12952
코딩테스트 연습 - N-Queen
가로, 세로 길이가 n인 정사각형으로된 체스판이 있습니다. 체스판 위의 n개의 퀸이 서로를 공격할 수 없도록 배치하고 싶습니다. 예를 들어서 n이 4인경우 다음과 같이 퀸을 배치하면 n개의 퀸은
programmers.co.kr
[프로그래머스][C++] N-Queen
#include <string>
#include <vector>
#include <cmath>
using namespace std;
int answer = 0;
int arr[15];
bool check(int r) {
for (int i = 0; i < r; i++) {
if (arr[r] == arr[i] || abs(arr[r] - arr[i]) == abs(r - i))
return false;
}
return true;
}
void dfs(int r, int n) {
if (r == n) {
answer++;
return;
}
for (int i = 0; i < n; i++) {
arr[r] = i;
if (check(r))
dfs(r + 1, n);
}
}
int solution(int n) {
dfs(0, n);
return answer;
}
'Problem Solving' 카테고리의 다른 글
[Python] Range / Slice 예시 (0) | 2022.09.10 |
---|---|
[프로그래머스][C++] 가장 큰 수 (0) | 2022.06.28 |
[프로그래머스][C++] 행렬의 곱셈 (0) | 2022.06.27 |
[프로그래머스][C++] 하노이의 탑 (0) | 2022.06.26 |
[프로그래머스][C++] 땅따먹기 (0) | 2022.06.23 |
댓글