Bem vindo ao desafio de código da Novatics!
Este desafio faz parte do processo seletivo da Novatics. Nas seções a seguir descrevemos o contexto do desafio, os problemas e listamos o que deve ser entregue pelo candidato.
Neste desafio apresentamos dois problemas com diferentes níveis de dificuldade para avaliarmos a capacidade de organização e solução de problemas dos candidatos.
Manipulando listas
Crie uma função que receba uma lista de números inteiros como parâmetro. Essa função deverá primeiramente ordenar os elementos em ordem crescente e após isso, deverá remover os elementos duplicados da lista, mantendo a ordem anterior. input: [8, 5, 10, 5, 2, 4, 4, 3]
output: [2, 3, 4, 5, 8, 10]
Validando Sudoku
Determine se uma tabela de Sudoku está valida, ou seja, os elementos inseridos correspondem as regras do jogo. Essas regras são:
- Cada linha deve conter dígitos de 1 - 9, SEM repetição;
- Cada coluna deve conter dígitos de 1 - 9, SEM repetição;
- Todas as noves mini-tabelas devem conter dígitos de 1 - 9, SEM repetição;
Sudoku válido:
board =
[["5","3",".",".","7",".",".",".","."]
,["6",".",".","1","9","5",".",".","."]
,[".","9","8",".",".",".",".","6","."]
,["8",".",".",".","6",".",".",".","3"]
,["4",".",".","8",".","3",".",".","1"]
,["7",".",".",".","2",".",".",".","6"]
,[".","6",".",".",".",".","2","8","."]
,[".",".",".","4","1","9",".",".","5"]
,[".",".",".",".","8",".",".","7","9"]]
output: true
board =
[["8","3",".",".","7",".",".",".","."]
,["6",".",".","1","9","5",".",".","."]
,[".","9","8",".",".",".",".","6","."]
,["8",".",".",".","6",".",".",".","3"]
,["4",".",".","8",".","3",".",".","1"]
,["7",".",".",".","2",".",".",".","6"]
,[".","6",".",".",".",".","2","8","."]
,[".",".",".","4","1","9",".",".","5"]
,[".",".",".",".","8",".",".","7","9"]]
output: false
- Código organizado e legível;
- A linguagem a sua escolha, mas preferencialmente, utilize Javascript;
- Adição de testes para cada desafio é bônus;
- python problem_1.py -v
- python problem_2.py -v