// your code goes here
function getMinimumCoins(coins, sum) {
let coinsQTY = 0;
let revArr = coins.reverse();
function check(arr, sum) {
for(let devisor of arr) {
if(sum < devisor) {
continue;
}
let change = sum % devisor;
coinsQTY += (sum - change) / devisor;
if(change > 0) {
return check(arr, change);
}
if(change === 0) {
return coinsQTY;
}
}
return 'error'
}
return check(revArr, sum)
}
let tests1 = getMinimumCoins([1, 2, 5, 10], 74);
let tests2 = getMinimumCoins([10, 20, 30], 13);
let tests3 = getMinimumCoins([1, 9, 10], 28);
console.log(tests1);
console.log(tests2);
console.log(tests3);
Ly8geW91ciBjb2RlIGdvZXMgaGVyZQpmdW5jdGlvbiBnZXRNaW5pbXVtQ29pbnMoY29pbnMsIHN1bSkgewoJbGV0IGNvaW5zUVRZID0gMDsKICBsZXQgcmV2QXJyID0gY29pbnMucmV2ZXJzZSgpOwoKCWZ1bmN0aW9uIGNoZWNrKGFyciwgc3VtKSB7CiAgICBmb3IobGV0IGRldmlzb3Igb2YgYXJyKSB7CiAgICAgIGlmKHN1bSA8IGRldmlzb3IpIHsKICAgICAgICBjb250aW51ZTsKICAgICAgfQogICAgICBsZXQgY2hhbmdlID0gc3VtICUgZGV2aXNvcjsKICAgICAgY29pbnNRVFkgKz0gKHN1bSAtIGNoYW5nZSkgLyBkZXZpc29yOwogICAgICBpZihjaGFuZ2UgPiAwKSB7ICAgCiAgICAgIAlyZXR1cm4gY2hlY2soYXJyLCBjaGFuZ2UpOwogICAgICB9CiAgICAgIGlmKGNoYW5nZSA9PT0gMCkgewogICAgICAgIHJldHVybiBjb2luc1FUWTsKICAgICAgfQogICAgfQogICAgcmV0dXJuICdlcnJvcicKICB9CiAgcmV0dXJuIGNoZWNrKHJldkFyciwgc3VtKQp9CmxldCB0ZXN0czEgPSBnZXRNaW5pbXVtQ29pbnMoWzEsIDIsIDUsIDEwXSwgNzQpOwpsZXQgdGVzdHMyID0gZ2V0TWluaW11bUNvaW5zKFsxMCwgMjAsIDMwXSwgMTMpOwpsZXQgdGVzdHMzID0gIGdldE1pbmltdW1Db2lucyhbMSwgOSwgMTBdLCAyOCk7IApjb25zb2xlLmxvZyh0ZXN0czEpOwpjb25zb2xlLmxvZyh0ZXN0czIpOwpjb25zb2xlLmxvZyh0ZXN0czMpOw==