Bartleby Related Questions Icon

Related questions

Question

def solve_n_queens(n):

   def is_safe(board, row, col):

       # Verificar la columna

       for i in range(row):

           if board[i][col] == 1:

               return False

      

       # Verificar la diagonal izquierda

       i, j = row, col

       while i >= 0 and j >= 0:

           if board[i][j] == 1:

               return False

           i -= 1

           j -= 1

       # Verificar la diagonal derecha

       i, j = row, col

       while i >= 0 and j < n:

           if board[i][j] == 1:

               return False

           i -= 1

           j += 1

       return True

   def solve(board, row):

       if row >= n:

           solution = []

           for r in board:

               solution.append("".join(['Q' if x == 1 else '.' for x in r]))

           solutions.append(solution)

           return

      

       for col in range(n):

           if is_safe(board, row, col):

               board[row][col] = 1

               solve(board, row + 1)

               board[row][col] = 0

  

   solutions = []

   board = [[0] * n for _ in range(n)]

   solve(board, 0)

   return solutions

# Ejemplo de uso:

n = 8

solutions = solve_n_queens(n)

for sol in solutions:

   for row in sol:

       print(row)

   print()

Expert Solution
Check Mark
Knowledge Booster
Background pattern image
Similar questions
SEE MORE QUESTIONS