From 97ade2e153d05f314c24393efd1a3c41a568e799 Mon Sep 17 00:00:00 2001 From: Natalia Kondratenko <62788967+NatKond@users.noreply.github.com> Date: Mon, 7 Apr 2025 11:55:00 +0200 Subject: [PATCH] Update NumberOfCoin.java --- .../practice/coin/NumberOfCoin.java | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/telran/lecture_10_greedy_algo/practice/coin/NumberOfCoin.java b/src/main/java/org/telran/lecture_10_greedy_algo/practice/coin/NumberOfCoin.java index a7f6612..ae7bc66 100644 --- a/src/main/java/org/telran/lecture_10_greedy_algo/practice/coin/NumberOfCoin.java +++ b/src/main/java/org/telran/lecture_10_greedy_algo/practice/coin/NumberOfCoin.java @@ -18,8 +18,23 @@ public static void main(String[] args) { } private static List getChange(int sum, int[] coins) { + if (coins == null || coins.length == 0){ + throw new IndexOutOfBoundsException("Invalid coins array."); + } + List result = new ArrayList<>(); - // You code here - return result; + List coinsList = Arrays.stream(coins).boxed().sorted(Comparator.reverseOrder()).toList(); + int sumCopy = sum; + for (int coin : coinsList) { + while (sumCopy >= coin) { + if (sumCopy == coin) { + result.add(coin); + return result; + } + sumCopy -= coin; + result.add(coin); + } + } + return new ArrayList<>(); } }