Papá Noel 🎅 tiene que repartir regalos en un pueblo representado como un mapa en cuadrícula.
Cada celda del mapa puede ser:
'S' → Punto de partida de Papá Noel'G' → Casa que debe recibir un regalo'.' → Camino libre'#' → Obstáculo (no se puede pasar)Papá Noel realiza entregas independientes para cada regalo. Sale de 'S', entrega el regalo en una casa 'G' y vuelve inmediatamente a 'S' para recoger el siguiente. Sin embargo, para este reto, solo queremos calcular la suma de las distancias mínimas de ida desde 'S' hasta cada casa 'G'.
Tu tarea
Escribe la función minStepsToDeliver(map) que devuelva el número total de pasos necesarios para llegar a todas las casas con regalos desde la posición inicial.
Ten en cuenta:
'S'.'S' hasta esa casa 'G'.'#').-1.minStepsToDeliver([
['S', '.', 'G'],
['.', '#', '.'],
['G', '.', '.']
])
// Resultado: 4
/*
Explicación:
- Distancia mínima de S (0,0) a G (0,2): 2 pasos
- Distancia mínima de S (0,0) a G (2,0): 2 pasos
- Total: 2 + 2 = 4
*/
minStepsToDeliver([
['S', '#', 'G'],
['#', '#', '.'],
['G', '.', '.']
])
// Resultado: -1
// (La casa en (0,2) es inalcanzable por los obstáculos)
minStepsToDeliver([['S', 'G']])
// Resultado: 1
Reglas
'S'.'G').'S'.Pista
'S' hasta cada 'G' (puedes usar un algoritmo de búsqueda en anchura o BFS).-1.