Maximum Units on a Truck

EasyArrayGreedySorting

Solution

export function maximumUnits(boxTypes: number[][], truckSize: number): number {
  boxTypes.sort((a, b) => b[1] - a[1]);
 
  let answer = 0;
  let currentIndex = 0;
  while (currentIndex < boxTypes.length && 0 < truckSize) {
    const [numberOfBoxes, numberOfUnitsPerBox] = boxTypes[currentIndex];
    answer += Math.min(truckSize, numberOfBoxes) * numberOfUnitsPerBox;
    truckSize -= numberOfBoxes;
    currentIndex += 1;
  }
 
  return answer;
}