DEV Community

Gabriel J
Gabriel J

Posted on

Zerando HackerRank ( 23 )

E no vigésimo terceiro episódio desta serie que queima os miolos, vamos abordar um problema envolvendo uma sequência de arrays mágicas.

Neste exercício, receberemos com proporção 3x3 e nossaa matriz, dessa forma:

Image description

Recebemos tal matriz representada pela variável s e precisamos convertê-la em outra matriz, mostrando a diferença absoluta entre elas. Esse problema lembra um pouco a lógica do Sudoku, pois contém valores em diagonais e em linhas iguais. O importante é criar um método para pegar a primeira matriz 3x3 e as subsequentes, e calcular a diferença entre elas.

O valor de s será diferente a cada novo problema, mas a regra é sempre compará-lo e subtraí-lo pela matriz passada anteriormente.

O objetivo é determinar o custo mínimo total para converter a matriz de entrada em uma matriz mágica. Cada linha contém três inteiros de linha separados por espaços em s

Para resolver este problema criaremos a função "maxValue".
Essa função calcula a menor diferença possível entre uma matriz fornecida (representada pela variável s) e uma lista de matrizes pré-definidas. Ela itera sobre cada matriz da lista magicSquare, calcula a soma das diferenças absolutas entre cada elemento da matriz fornecida e da matriz atual de magicSquare e armazena o valor mínimo das somas em maxValue. Finalmente, retorna o valor de maxValue.

Em outras palavras, a função encontra a matriz de magicSquare mais próxima (em termos de soma das diferenças absolutas) da matriz s. É importante notar que a variável s não é definida no código fornecido, então não podemos ter certeza sobre o tipo ou formato da matriz que a função espera receber como entrada.

Nossa função vai ficar assim:

Image description

E assim fechamos mais um desafio.

Top comments (0)