From 19c3a4c6f77a8b06c90a1aa8898861dcef1d4df0 Mon Sep 17 00:00:00 2001 From: Leanne Jacob Date: Tue, 15 Sep 2026 18:43:21 +0530 Subject: [PATCH] Add N-Queens backtracking solution --- n_queens/README.md | 0 n_queens/n_queens.py | 42 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 42 insertions(+) create mode 100644 n_queens/README.md create mode 100644 n_queens/n_queens.py diff --git a/n_queens/README.md b/n_queens/README.md new file mode 100644 index 00000000..e69de29b diff --git a/n_queens/n_queens.py b/n_queens/n_queens.py new file mode 100644 index 00000000..e0a18f49 --- /dev/null +++ b/n_queens/n_queens.py @@ -0,0 +1,42 @@ +def is_safe(board, row, col, n): + for i in range(row): + if board[i] == col: + return False + + if abs(board[i] - col) == abs(i - row): + return False + + return True + + +def solve(board, row, n): + if row == n: + return True + + for col in range(n): + if is_safe(board, row, col, n): + board[row] = col + + if solve(board, row + 1, n): + return True + + board[row] = -1 + + return False + + +def print_board(board, n): + for row in range(n): + for col in range(n): + print("Q" if board[row] == col else ".", end=" ") + print() + + +n = int(input("Enter the number of queens: ")) + +board = [-1] * n + +if solve(board, 0, n): + print_board(board, n) +else: + print("No solution exists.") \ No newline at end of file