OneCompiler

n queen

97

N = 8

def print_board(board):
for i in range(N):
for j in range(N):
print(board[i][j], end=" ")
print()
print()

def isSafe(board, row, col):
# Check this row on left side
for x in range(col):
if board[row][x] == 'Q':
return False

for x, y in zip(range(row, -1, -1), range(col, -1, -1)):
    if board[x][y] == 'Q':
        return False


for x, y in zip(range(row, N), range(col, -1, -1)):
    if board[x][y] == 'Q':
        return False

return True

def solveNQueens(board, col):
if col >= N:
print_board(board)
return True

for i in range(N):
    if isSafe(board, i, col):
        board[i][col] = 'Q'
        if solveNQueens(board, col + 1):
            return True
        board[i][col] = '.'  

return False

board = [["." for _ in range(N)] for _ in range(N)]

if not solveNQueens(board, 0):
print("No solution found")