-
[알고리즘] 백준 9663번: N-Queen - C++알고리즘/백준 2020. 12. 12. 21:43728x90
#include <iostream> using namespace std; bool a[15][15]; int N, ans; bool check(int row, int col) { int x, y; x = row - 1; y = col; while(x >= 0) { if (a[x][y]) return false; x--; } x = row - 1; y = col - 1; while (x >= 0 && y >= 0) { if (a[x][y]) return false; x--; y--; } x = row - 1; y = col + 1; while (x >=0 && y < N) { if (a[x][y]) return false; x--; y++; } return true; } void queen(int row) { if (row == N) { ans += 1; } for (int col = 0; col < N; col++) { a[row][col] = true; if (check(row, col)) queen(row + 1); a[row][col] = false; } } int main() { cin >> N; queen(0); cout << ans << endl; }
github.com/waves123/9663/blob/master/9663/9663.cpp
728x90'알고리즘 > 백준' 카테고리의 다른 글
[알고리즘] 백준 1261번: 알고스팟 - C++ (0) 2020.12.12 [알고리즘] 백준 2580번: 스도쿠 - C++ (0) 2020.12.12 [알고리즘] 9019번: DSLR - C++ (0) 2020.12.12 [알고리즘] 백준 10971번: 외판원 순회 2 - C++ (0) 2020.12.12 [알고리즘] 백준 10819번: 차이를 최대로 - C++ (0) 2020.12.12