From e8ac49305dd686acb65482af2ac433bcb38ef560 Mon Sep 17 00:00:00 2001 From: Faisal Ahmad <84896976+FaisalAI541@users.noreply.github.com> Date: Mon, 17 Oct 2022 16:47:25 +0530 Subject: [PATCH] Create nQueen.java --- nQueen.java | 69 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 nQueen.java diff --git a/nQueen.java b/nQueen.java new file mode 100644 index 0000000..6e967bf --- /dev/null +++ b/nQueen.java @@ -0,0 +1,69 @@ +public class NQueenProblem { + final int N = 4; + void printSolution(int board[][]) + { + for (int i = 0; i < N; i++) { + for (int j = 0; j < N; j++) + System.out.print(" " + board[i][j] + + " "); + System.out.println(); + } + } + boolean isSafe(int board[][], int row, int col) + { + int i, j; + for (i = 0; i < col; i++) + if (board[row][i] == 1) + return false; + for (i = row, j = col; i >= 0 && j >= 0; i--, j--) + if (board[i][j] == 1) + return false; + for (i = row, j = col; j >= 0 && i < N; i++, j--) + if (board[i][j] == 1) + return false; + return true; + } + boolean solveNQUtil(int board[][], int col) + { + if (col >= N) + return true; + for (int i = 0; i < N; i++) { + + if (isSafe(board, i, col)) { + + board[i][col] = 1; + + + if (solveNQUtil(board, col + 1) == true) + return true; + + + board[i][col] = 0; // BACKTRACK + } + } + + return false; + } + + boolean solveNQ() + { + int board[][] = { { 0, 0, 0, 0 }, + { 0, 0, 0, 0 }, + { 0, 0, 0, 0 }, + { 0, 0, 0, 0 } }; + + if (solveNQUtil(board, 0) == false) { + System.out.print("Solution does not exist"); + return false; + } + + printSolution(board); + return true; + } + + public static void main(String args[]) + { + NQueenProblem Queen = new NQueenProblem(); + Queen.solveNQ(); + } +}