O Papai Noel 🎅 precisa entregar presentes em uma vila representada como um mapa em grade.
Cada célula do mapa pode ser:
'S' → Ponto de partida do Papai Noel (onde estão os presentes)'G' → Casa que deve receber um presente'.' → Caminho livre'#' → Obstáculo (não é possível passar)O Papai Noel realiza entregas independentes para cada presente. Ele sai de 'S', entrega o presente em uma casa 'G' e retorna imediatamente para 'S' para pegar o próximo. No entanto, para este desafio, queremos apenas calcular a soma das distâncias mínimas de ida de 'S' até cada casa 'G'.
Escreva a função minStepsToDeliver(map) que retorne o número total de passos necessários para chegar a todas as casas com presentes a partir da posição inicial.
Tenha em mente:
'S'.'S' até aquela casa 'G'.'#').-1.🧩 Exemplos
minStepsToDeliver([
['S', '.', 'G'],
['.', '#', '.'],
['G', '.', '.']
])
// Resultado: 4
/*
Explicação:
- Distância mínima de S (0,0) até G (0,2): 2 passos
- Distancia mínima de S (0,0) até G (2,0): 2 passos
- Total: 2 + 2 = 4
*/
minStepsToDeliver([
['S', '#', 'G'],
['#', '#', '.'],
['G', '.', '.']
])
// Resultado: -1
// (A casa em (0,2) é inacessível devido aos obstáculos)
minStepsToDeliver([['S', 'G']])
// Resultado: 1
🎯 Regras
'S'.'G').'S'.🧠 Dica
'S' até cada 'G' (você pode usar um algoritmo de busca em largura ou BFS).-1.