La tienda del juego
- O(n log n) · Difícil
- Plan completo
- Python
- JavaScript
- ordenar
- ciclos
- comparaciones
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):
passJavaScript
function compras(precios, monedas) {
}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)
- Las antorchas de la murallalistas · ordenar · decimales
- Las colmenas separadaslistas · ordenar · búsqueda
- Las horas de los testigoslistas · ordenar · comparaciones
- Las horas vigiladastextos · listas · ordenar
- Las macetas del jardíndiccionarios · ordenar · índices
- Las sombrillas de la playalistas · ordenar · comparaciones