Advent.js馃巺馃徏| Reto #4: Una caja dentro de otra caja y otra...

Cristian Fernando - Dec 6 '22 - - Dev Community

Reto #4: Una caja dentro de otra caja y otra...

Santa Claus necesita hacer una revisi贸n de sus cajas de regalos para asegurarse de que puede empaquetarlas todas en su trineo. Cuenta con una serie de cajas de diferentes tama帽os, que se caracterizan por su longitud, anchura y altura.

Tu tarea es escribir una funci贸n que, dada una lista de cajas con sus tama帽os, determine si es posible empaquetar todas las cajas en una sola de manera que cada caja contenga a otra (que a su vez contenga a otra, y as铆 sucesivamente).

Cada caja representa sus medidas con un objeto. Por ejemplo: {l: 2, w: 3, h: 2}. Esto significa que la caja tiene una longitud de 2, una anchura de 3 y una altura de 2.

Una caja entra en otra caja si todos los lados de la primera son menores a los lados de la segunda. Los elfos nos han dicho que las cajas no se pueden rotar, as铆 que no se puede poner una caja de 2x3x2 en una caja de 3x2x2. Veamos unos ejemplos:

fitsInOneBox([
  { l: 1, w: 1, h: 1 },
  { l: 2, w: 2, h: 2 }
]) // true
Enter fullscreen mode Exit fullscreen mode

En el ejemplo anterior, la caja m谩s peque帽a entra en la caja m谩s grande. Por lo tanto, es posible empaquetar todas las cajas en una sola. Ahora veamos un caso que no:

const boxes = [
  { l: 1, w: 1, h: 1 },
  { l: 2, w: 2, h: 2 },
  { l: 3, w: 1, h: 3 }
]

fitsInOneBox(boxes) // false
Enter fullscreen mode Exit fullscreen mode

En el ejemplo anterior, la caja m谩s peque帽a entra en la caja del medio, pero la caja del medio no entra en la caja m谩s grande. Por lo tanto, no es posible empaquetar todas las cajas en una sola.

Ten en cuenta que las cajas pueden no venir en orden:

const boxes = [
  { l: 1, w: 1, h: 1 },
  { l: 3, w: 3, h: 3 },
  { l: 2, w: 2, h: 2 }
]

fitsInOneBox(boxes) // true
Enter fullscreen mode Exit fullscreen mode

En el ejemplo anterior, la primer caja cabe en la tercera, y la tercera en la segunda. Por lo tanto, es posible empaquetar todas las cajas en una sola.

Cosas a tener en cuenta:

Las cajas no se pueden rotar ya que los elfos nos han dicho que la m谩quina no est谩 preparada.
Las cajas pueden venir desordenadas de tama帽o.
Las cajas no son siempre cuadradas, pueden ser rectangulares.

Completa el reto!


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


Mi soluci贸n:

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .