Dia 14: Mover renos a establos

Los renos necesitan moverse para ocupar los establos, pero no puede haber m谩s de un reno por establo. Adem谩s, para que los renos est茅n c贸modos, debemos minimizar la distancia total que recorren para acomodarse.

Tenemos dos par谩metros:

reindeer: Un array de enteros que representan las posiciones de los renos.
stables: Un array de enteros que representan las posiciones de los establos.

Hay que mover cada reno, desde su posici贸n actual, hasta un establo. Pero hay que tener en cuenta que s贸lo puede haber un reno por establo.

Tu tarea es calcular el m铆nimo n煤mero de movimientos necesarios para que todos los renos acaben en un establo.

Nota: Ten en cuenta que el array de establos siempre tendr谩 el mismo tama帽o que el array de renos y que siempre los establos ser谩n 煤nicos. Ejemplo

minMovesToStables([2, 6, 9], [3, 8, 5]) // -> 3
// Explicaci贸n:
// Renos en posiciones: 2, 6, 9
// Establos en posiciones: 3, 8, 5
// 1er reno: se mueve de la posici贸n 2 al establo en la posici贸n 3 (1 movimiento).
// 2do reno: se mueve de la posici贸n 6 al establo en la posici贸n 5 (1 movimiento)
// 3er reno: se mueve de la posici贸n 9 al establo en la posici贸n 8 (1 movimiento).
// Total de movimientos: 1 + 1 + 1 = 3 movimientos

minMovesToStables([1, 1, 3], [1, 8, 4])
// Explicaci贸n:
// Renos en posiciones: 1, 1, 3
// Establos en posiciones: 1, 8, 4
// 1er reno: no se mueve (0 movimientos)
// 2do reno: se mueve de la posici贸n 1 al establo en la posici贸n 4 (3 movimientos)
// 3er reno: se mueve de la posici贸n 3 al establo en la posici贸n 8 (5 movimientos)
// Total de movimientos: 0 + 3 + 5 = 8 movimientos

Solution

function minMovesToStables(reindeer, stables) {
  reindeer.sort((a, b) => a - b)
  stables.sort((a, b) => a - b)
  let totalMoves = 0
  for (let i = 0; i < reindeer.length; i++) {
    totalMoves += Math.abs(reindeer[i] - stables[i])
  }
  return totalMoves
}

minMovesToStables([1, 4, 9], [10, 0, 8])