Maximum Bags With Full Capacity of Rocks

MediumArrayGreedySorting

Solution

export function maximumBags(
  capacities: number[],
  rocks: number[],
  additionalRocks: number,
): number {
  const remainCapacities = capacities
    .map((capacity, i) => capacity - rocks[i])
    .sort((a, b) => a - b);
 
  let answer = 0;
  for (const remainCapacity of remainCapacities) {
    if (additionalRocks < remainCapacity) {
      return answer;
    }
    additionalRocks -= remainCapacity;
    answer += 1;
  }
 
  return answer;
}