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<>(); } }