Back to all solutions
#3074 - Apple Redistribution into Boxes
Problem Description
You are given an array apple of size n and an array capacity of size m.
There are n packs where the ith pack contains apple[i] apples. There are m boxes as well, and the ith box has a capacity of capacity[i] apples.
Return the minimum number of boxes you need to select to redistribute these n packs of apples into boxes.
Note that, apples from the same pack can be distributed into different boxes.
Solution
/**
* @param {number[]} apple
* @param {number[]} capacity
* @return {number}
*/
var minimumBoxes = function(apple, capacity) {
const totalApples = apple.reduce((sum, num) => sum + num, 0);
const sortedCapacities = capacity.sort((a, b) => b - a);
let currentCapacity = 0;
let result = 0;
for (const box of sortedCapacities) {
if (currentCapacity < totalApples) {
currentCapacity += box;
result++;
} else {
break;
}
}
return result;
};