Todos los desafíos
Difícil 0 resueltos 0% de aceptación

Mínimo de viajes en ascensor

Agrupa a las personas en la menor cantidad posible de viajes de ascensor, respetando el límite de peso.

Cada persona debe viajar exactamente una vez. Cualquier grupo puede compartir un viaje si la suma de sus pesos no supera la capacidad. Las personas pueden reagruparse libremente; el orden de entrada no importa. Minimiza el número de viajes.

Implementa elevator_rides(weights, capacity).

Entrada

weights: El peso de cada persona.

capacity: El peso máximo combinado en un viaje.

Salida

Devuelve el número mínimo de viajes.

Restricciones

1 ≤ personas ≤ 20. 1 ≤ capacidad ≤ 1,000,000,000. Cada peso está entre 1 y capacidad.

Ejemplos

Ejemplo 1
Entrada:
weights = [3, 4, 5]
capacity = 7

Salida esperada:
expected = 2
Entrada:
std::vector<long long> weights = {3, 4, 5};
long long capacity = 7;

Salida esperada:
long long expected = 2;
Entrada:
long[] weights = new long[] {3, 4, 5};
long capacity = 7;

Salida esperada:
long expected = 2;

Explicación

Envía a 3 + 4 juntos y a 5 por separado. El peso total 12 no cabe en un solo viaje de capacidad 7.

Ejemplo 2
Entrada:
weights = [2, 2, 2]
capacity = 6

Salida esperada:
expected = 1
Entrada:
std::vector<long long> weights = {2, 2, 2};
long long capacity = 6;

Salida esperada:
long long expected = 1;
Entrada:
long[] weights = new long[] {2, 2, 2};
long capacity = 6;

Salida esperada:
long expected = 1;

Explicación

Las tres personas caben juntas porque 2 + 2 + 2 = 6.

Referencias

Este reto está adaptado para CodeUtility. Sigue el enunciado y las restricciones indicadas arriba.

Aprende de otros

Soluciones de la comunidad

Aún no hay soluciones publicadas. Resuelve este reto para compartir la primera.