Files
algo_tasks/src/main/java/com/algos/shortcut/Atm.java
2025-04-08 10:57:42 +03:00

46 lines
1.7 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package com.algos.shortcut;
import java.util.Arrays;
// В банкомате доступны банкноты различных номиналов, например, [100, 500, 1000].
// Вам необходимо написать программу, которая по заданной сумме определяет минимальное количество банкнот,
// необходимое для выдачи этой суммы. Допускается использовать любое количество банкнот каждого номинала.
//
// Если точно составить требуемую сумму с использованием имеющихся номиналов невозможно,
// программа должна вернуть -1.
public class Atm {
public static void main(String[] args) {
int[] banknotes = {100, 500, 1000};
// int[] banknotes = {1000, 100, 500};
// int amount = 1500;
int amount = 1803;
// int amount = 1800;
// int amount = 600;
int result = minBanknotes(banknotes, amount);
System.out.println(result);
}
private static int minBanknotes(int[] banknotes, int amount) {
Arrays.sort(banknotes);
int[] result = new int[banknotes.length];
for (int i = banknotes.length - 1; i >= 0; i--) {
if (amount < banknotes[i]) {
continue;
}
result[i] = amount / banknotes[i];
amount = amount % banknotes[i];
}
if (amount != 0) {
return -1;
}
return Arrays.stream(result).sum();
}
}