Challenge: Conseguir el menor número de monedas para cambio
- Patricia Vazquez
- 6 abr 2020
- 1 Min. de lectura
Actualizado: 26 abr 2020
Hoy me he enfrentado a un challenge que he visto que se repite mucho en internet, y es encontrar un algoritmo para devolver el cambio con el menor número de monedas.
Después de hacerlo de varias maneras con bucles que daban un time out para números muy grandes, encontré la siguiente solución
Donde coins es el array de monedas, el cual también podría ser un input. ¿Mejoraríais algo más? Dejadme en vuestros comentarios y a ver si puedo hacer un algoritmo mejor.
function findMinCoinsCount(amount) {
var coins = [20, 10, 5, 2, 1];
var res = 0;
if (amount === 0)
return res;
for (var i = 0; i < coins.length; i++) {
if (coins[i] <= amount) {
var coinRes = parseInt((amount / coins[i]), 10)
res = res + coinRes;
amount = amount - coinRes * coins[i];
if (amount === 0)
return res;
}
}
}

Muy útil, es un algoritmo necesario para la mayoría de establecimientos y sus máquinas que constantemente tienen que devolver cambio.