From c42153d3c50aa8391933b339624103b770d12d4b Mon Sep 17 00:00:00 2001 From: siiky Date: Wed, 28 May 2025 12:05:50 +0100 Subject: [PATCH 1/2] fix: sort coins by descending denomination --- packages/server/lib/coin-change.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/server/lib/coin-change.js b/packages/server/lib/coin-change.js index 38e42e92..f0e52ce3 100644 --- a/packages/server/lib/coin-change.js +++ b/packages/server/lib/coin-change.js @@ -9,7 +9,7 @@ */ const prepare_denominations = denominations => JSON.parse(JSON.stringify(denominations)) - .sort(([d1], [d2]) => d1 < d2) + .sort(([d1], [d2]) => d2 - d1) .reduce( ([csum, denoms], [denom, count]) => { csum += denom * count From 4191a8cd7b6f2be6935fb3e29f724c1db37020fa Mon Sep 17 00:00:00 2001 From: siiky Date: Wed, 28 May 2025 12:06:08 +0100 Subject: [PATCH 2/2] refactor: simplify denominations list construction --- packages/server/lib/coin-change.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/server/lib/coin-change.js b/packages/server/lib/coin-change.js index f0e52ce3..91f37483 100644 --- a/packages/server/lib/coin-change.js +++ b/packages/server/lib/coin-change.js @@ -13,7 +13,8 @@ const prepare_denominations = denominations => .reduce( ([csum, denoms], [denom, count]) => { csum += denom * count - return [csum, [{ denom, count, csum }].concat(denoms)] + denoms.push({ denom, count, csum }) + return [csum, denoms] }, [0, []], )[1] /* ([csum, denoms]) => denoms */