OneCompiler

mgw NQ

114
 def solve_n_queens(n):
    def is_safe(board, row, col):
        for i in range(col):
            if board[i] == row or board[i] - i == row - col or board[i] + i == row + col:
                return False
        return True

    def place_queen(board, col):
        if col == n:
            print_board(board)
            return

        for row in range(n):
            if is_safe(board, row, col):
                board[col] = row
                place_queen(board, col + 1)

    def print_board(board):
        for row in range(n):
            line = ["Q" if board[col] == row else "." for col in range(n)]
            print(" ".join(line))
        print()

    board = [-1] * n
    place_queen(board, 0)  
n = 4
solve_n_queens(n)