En este artículo, abordaremos la solución al problema desencadenante de minimizar la distancia total recorrida por robots en el eje X, reparados por fábricas bajo ciertas limitaciones.
Descripción del Problema
Se nos proporciona un array de enteros denominado robot, donde cada elemento representa la posición de un robot en el eje X. Asimismo, se nos proporciona un array 2D llamado factory, donde cada subarray indica la posición de una fábrica y su límite de reparaciones.
Nuestro objetivo es minimizar la distancia total recorrida por todos los robots, asegurando que todos sean reparados.
Solución en JAVA
La solución a este problema se implementa considerando las posiciones iniciales tanto de los robots como de las fábricas, con sus limitaciones. La estrategia clave es asignar direcciones de movimiento óptimas para los robots, de tal manera que se minimice la distancia total.
import java.util.Arrays;
public class Solution {
public int minimumTotalDistance(int[] robots, int[][] factories) {
Arrays.sort(robots);
Arrays.sort(factories, (a, b) -> Integer.compare(a[0], b[0]));
int totalDistance = 0;
int robotIndex = 0;
for (int[] factory : factories) {
int factoryPosition = factory[0];
int factoryLimit = factory[1];
for (int i = 0; i < factoryLimit && robotIndex < robots.length; i++) {
totalDistance += Math.abs(factoryPosition - robots[robotIndex]);
robotIndex++;
}
}
return totalDistance;
}
}