Problème
Pour jouer sur une scène, un groupe doit remplir un créneau de une heure maximum. Ils donnent donc une liste de chacune de leurs chansons en minutes, et vous devez vérifier si la durée totale est compatible avec la scène. Sinon, trouvez une combinaison de chansons qui peut remplir ce créneau (sans dépasser 60 minutes).
Code
A. Algorithme bonus simple
function findCombination(tracksList, maxDuration) {
let result = [];
let total = 0;
for (let i = 0; i < tracksList.length; i++) {
if (total + tracksList[i] <= maxDuration) {
result.push(tracksList[i]);
total += tracksList[i];
}
}
return result;
}
B. Algorithme plus court
const findCombination = (tracksList, maxDuration) => {
let total = 0;
return tracksList.filter((track) => {
if (total + track <= maxDuration) {
total += track;
return true;
}
return false;
});
};