Sudoku. Implemente a função Sudoku(matriz). matriz é uma matriz 9×9 com números de 0 a 9 , onde 0 representaria uma posição vazia num jogo de Sudoku. A função deve trocar todas os números errados, segundo o critério do Sudoku por 0. Você pode utilizar os métodos embutidos nas classes list e set do Python.

Passo 1

Primeiro, vamos entender o que o exercício está pedindo. Temos uma matriz 9×9 que representa um jogo de Sudoku. Nessa matriz, os números de 1 a 9 preenchem as células, e o 0 indica uma célula vazia. Nosso objetivo é verificar se os números estão corretos conforme as regras do Sudoku. Se algum número estiver errado, vamos substituí-lo por 0. Para fazer isso, precisaremos entender as regras básicas do Sudoku e como verificar se um número está na posição correta.

Passo 2

As regras do Sudoku dizem que cada número de 1 a 9 deve aparecer exatamente uma vez em cada linha, em cada coluna e em cada uma das nove submatrizes 3×3. Portanto, para verificar se um número está correto, precisamos garantir que ele não se repita na linha, na coluna ou na submatriz 3×3 correspondente.

Passo 3

Vamos começar verificando as linhas. Para cada linha da matriz, vamos criar um conjunto (set) para armazenar os números que já apareceram. Se encontrarmos um número que já está no conjunto, isso significa que ele está repetido na linha e está errado. Nesse caso, substituímos esse número por 0.

Passo 4

Depois, faremos a mesma verificação para as colunas. Percorremos cada coluna da matriz, criando um conjunto para armazenar os números já vistos. Se um número se repetir na coluna, ele está incorreto e será substituído por 0.

Passo 5

Por fim, verificamos as submatrizes 3×3. O Sudoku divide a matriz principal em nove submatrizes menores. Para cada submatriz, usamos um conjunto para verificar se há números repetidos. Se encontrarmos algum número duplicado dentro de uma submatriz, substituímos esse número por 0.

Resposta

A função Sudoku(matriz) percorre cada célula da matriz 9×9, verifica se o número está repetido na linha, na coluna ou na submatriz 3×3 correspondente. Se estiver repetido em qualquer desses, substitui o número por 0. No final, a matriz corrigida é retornada com os números errados substituídos por 0.

Exercícios relacionados