DEV Community

Cover image for Advent.js🎅🏼| Reto #3: ¿Cuántas cajas de regalos puede llevar Papá Noel?
Cristian Fernando
Cristian Fernando

Posted on • Updated on

Advent.js🎅🏼| Reto #3: ¿Cuántas cajas de regalos puede llevar Papá Noel?

¿Cuántas cajas de regalos puede llevar Papá Noel?

Tienes una caja de regalos de Navidad que Santa Claus quiere entregar a los niños. Cada regalo está representado por una cadena. Santa Claus tiene un trineo que puede llevar un peso limitado, y cada regalo dentro de la caja tiene un peso que es igual al número de letras en el nombre del regalo.

Santa Claus también tiene una lista de renos que pueden ayudarlo a entregar los regalos. Cada renos tiene un límite de peso máximo que puede llevar. El límite de peso máximo de cada reno es igual a dos veces el número de letras en su nombre.

Tu tarea es implementar una función distributeGifts(packOfGifts, reindeers) que recibe una caja de regalos y una lista de renos y devuelve el número máximo de cajas de estos regalos que Santa Claus puede entregar a los niños. Las cajas de regalos no se pueden dividir.

const packOfGifts = ["book", "doll", "ball"]
const reindeers = ["dasher", "dancer"]

// el pack de regalos pesa 4 + 4 + 4 = 12
// los renos pueden llevar (2 * 6) + (2 * 6) = 24
// por lo tanto, Santa Claus puede entregar 2 cajas de regalos

distributeGifts(packOfGifts, reindeers) // 2
Enter fullscreen mode Exit fullscreen mode

Cosas a tener en cuenta:

  • Las cajas de regalos no se pueden dividir.
  • Los nombres de los regalos y los renos siempre serán mayores que 0.

Completa el reto!


Puedes seguir a @midudev y estar pendiente de los retos de Advent.js


Mi solución:

Latest comments (4)

Collapse
 
guidocsm profile image
Guido

Aporto mi solución por aquí, saludos!
Image description

Collapse
 
jairandresdiazp profile image
Jair Andres Diaz Puentes • Edited

comparto mi solución

function distributeGifts(packOfGifts, reindeers) {
    const weight = packOfGifts.reduce((weightPack, pack) =>
            weightPack + pack.length, 0);
    const carry = reindeers.reduce((carryPack, reindeer) =>
            carryPack + (reindeer.length * 2), 0);
    return parseInt(carry / weight);
}
Enter fullscreen mode Exit fullscreen mode
Collapse
 
lauther profile image
Lauther

Mi humilde aporte, algo básico pero funciona!
Image description

Collapse
 
duxtech profile image
Cristian Fernando

me gusta mucho esa solución!! se ve muy minimalista y sencilla de comprender