diff --git a/packages/server/lib/coin-change.js b/packages/server/lib/coin-change.js index 91f37483..d90b46c9 100644 --- a/packages/server/lib/coin-change.js +++ b/packages/server/lib/coin-change.js @@ -9,12 +9,12 @@ */ const prepare_denominations = denominations => JSON.parse(JSON.stringify(denominations)) - .sort(([d1], [d2]) => d2 - d1) + .filter(([, count]) => count > 0) + .sort(([d1], [d2]) => d1 - d2) .reduce( ([csum, denoms], [denom, count]) => { csum += denom * count - denoms.push({ denom, count, csum }) - return [csum, denoms] + return [csum, [{ denom, count, csum }].concat(denoms)] }, [0, []], )[1] /* ([csum, denoms]) => denoms */