Dynamic Programming - Making Change

by gradbot

JavaScript

var coins = [1, 5, 10, 25];

function makeChange(value) {
    var change = {};
    
    for (var coin = coins.length; coin >= 0; coin--) {
        var count = 0,
            coinValue = coins[coin];
        
        while (value >= coinValue) {
            value -= coinValue;
            count++;
        }
        
        if (count > 0) {
            change[coinValue] = count;
        }
    }
    
    return change;
}

console.log(makeChange(7));
console.log(makeChange(135));
console.log(makeChange(75));