[Python-es] Ejercicio Bolsas de caramelos

lasizoillo lasizoillo en gmail.com
Jue Ene 13 17:14:38 CET 2011


El día 13 de enero de 2011 16:57, pixu kideak <pixukideak en gmail.com> escribió:
> Bueno pues para resolver el problema había pensado lo siguiente:
> Contar en memoria con todos los datos ( todas las bolsas existentes y éstas
> con los caramelos que contienen y sus cantidades )
> Recorrer secuencialmente todas las bolsas viendo si tienen el caramelo que
> me interesa. En caso afirmativo contabilizar esa cantidad en el contador y
> así hasta recorrer todas las bolsas.
> Simplemente quería saber si existía alguna forma "divina" pero viendo que
> las Bolsas no guardan ninguna lógica en su composición; creo que toca
> recorrerlas todas viendo si contienen el caramelo o no :-)
> Saludos y gracias ;-)

Vale, ahora entiendo el problema ;-)

Si que hay solución y por supuesto no es nada divina. En algunos casos
será mejor y en otros peor. Puedes mantener una especie de inventario
de todos los caramelos. Bastaría con un diccionario en el que la clave
es el caramelo y el valor el número de unidades en las bolsas
registradas.

Ese dato se puede ir llenando cada vez que registras una bolsa de
caramelo. Pero también deberías actualizarlo al eliminar bolsas de
caramelos. Por lo cual, estas haciendo más trabajo cada vez que dás de
alta/baja una bolsa de caramelos y los contadores de cada tipo de
caramelo ocupan espacio (no creo que importe mucho, pero hay que ser
precisos). La ventaja es que se podrían hacer las consultas de los
caramelos en O(1).

Saludos:

Javi

>
> 2011/1/13 lasizoillo <lasizoillo en gmail.com>
>>
>> El día 13 de enero de 2011 13:38, pixu kideak <pixukideak en gmail.com>
>> escribió:
>> >
>> > Me han planteado un problemilla para realizarlo con Python pero no tengo
>> > muy
>> > claro por dónde atacar para resolverlo de manera eficiente.
>>
>> Sería un buen punto de partida la forma ineficiente por dos motivos:
>>  * El primero porque muestras que te has esforzado en intentarlo y
>> tienes afán de superación en vez de más cara que espalda como muestran
>> algunos que quieren que les hagan los deberes.
>>
>> > El problema es el siguiente:
>> > "Tengo distintas bolsas de caramelos, cada bolsa digamos que tiene un
>> > nombre; (BolsaA, BolsaB ... )y cada bolsa se compone de caramelos
>> > diferentes
>> > (RegalizRojo, RegalizNegro, Chicle,Tiburón ...).
>> > "El tipo de caramelo puede estar tanto en un modelo de bolsa cómo en
>> > otra"
>> > Lo que deseo realizar es, que el usuario pueda introducir cualquier tipo
>> > de
>> > caramelo y le muestre todas las unidades que se necesitan de ese tipo.
>>
>>  * El segundo porque la redacción en lenguaje natural no compila en
>> nuestras mentes. Seguramente un código ineficiente nos ayudaría a
>> comprender el enunciado del problema. Unos tests o casos de prueba
>> serían maravillosos. Ahora mismo las unidades que responden a la gran
>> pregunta, creo que son 42. Lo que no se es cual es la gran pregunta de
>> la vida, el universo y todo lo demás (incluyendo este problema ;-)
>>
>> Saludos:
>>
>> Javi
>> _______________________________________________
>> Python-es mailing list
>> Python-es en python.org
>> http://mail.python.org/mailman/listinfo/python-es
>> FAQ: http://python-es-faq.wikidot.com/
>
>
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>
>


Más información sobre la lista de distribución Python-es