Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.*;
- public class Main {
- public static int totalNQueens(int n) {
- char board[][] = new char[n][n];
- for(char i[] : board)
- Arrays.fill(i, '.');
- return dfs(0, board);
- }
- public static int dfs(int col, char board[][]){
- if(col == board.length) return 1;
- int count = 0;
- for(int row = 0; row < board.length; row++){
- if(isSafe(board, row, col)){
- board[row][col] = 'Q';
- count += dfs(col + 1, board);
- board[row][col] = '.';
- }
- }
- return count;
- }
- public static boolean isSafe(char board[][], int row, int col){
- int dupRow = row;
- int dupCol = col;
- while(row >= 0 && col >= 0){
- if(board[row][col] == 'Q') return false;
- row--;
- col--;
- }
- row = dupRow;
- col = dupCol;
- while(col >= 0){
- if(board[row][col] == 'Q') return false;
- col--;
- }
- row = dupRow;
- col = dupCol;
- while(col >= 0 && row < board.length){
- if(board[row][col] == 'Q') return false;
- row++;
- col--;
- }
- return true;
- }
- public static void main(String[] args) throws Throwable {
- Scanner sc = new Scanner(System.in);
- int n = sc.nextInt();
- System.out.println(totalNQueens(n));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement