Saltar al contenido

La tienda del juego

Enunciado

"Lo que alcances con eso", dice el tendero de la aldea, y tu personaje vacía la bolsa sobre el mostrador. Quieres salir de la tienda con el mayor número de objetos posible, sin importar cuáles sean.

Escribe una función que reciba precios, una lista de enteros positivos (puede venir vacía o con precios repetidos; cada precio es un objeto distinto), y monedas, un entero de 0 en adelante. Regresa un entero: cuántos objetos puedes comprar como máximo, cada uno una sola vez, sin gastar más monedas de las que traes. Gastarlas todas justo sí se vale.

Con precios 12, 5, 8, 20 y 3 y 20 monedas: compras el de 3, el de 5 y el de 8, y gastas 16. Con cualquier cuarto objeto te pasas. La respuesta es 3. Sin objetos, o sin monedas, compras 0.

Ejemplos

  • El del ejemplo

    [12, 5, 8, 20, 3], 20 → 3

  • Gastar justo todo

    [4, 6, 10], 10 → 2

  • Precios repetidos

    [7, 7, 7], 20 → 2

  • Te alcanza para todo

    [2, 3, 1], 100 → 3

  • Sin monedas

    [1, 2], 0 → 0

Además de estas, el reto tiene pruebas ocultas que se revelan al enviar tu solución.

Empiezas con esto

Python

def compras(precios, monedas):
    pass

JavaScript

function compras(precios, monedas) {
}
Resolver este reto

Se abre en el navegador, con el editor y las pruebas. Este reto es del plan completo; los de O(1) y O(log n) son gratis.

Más retos de O(n log n)

Ver todos los retos →