import java.util.*;
/**
* Created by IntelliJ IDEA.
* User: uchan
* Date: 5/6/12
* Time: 9:41 PM
* To change this template use File | Settings | File Templates.
*/
public class CoinCalc {
private static int[] coinArray = new int[]{100, 50, 10, 5, 2, 1};
public static void main(String[] args) {
if (args.length != 1) {
System.err.println("Please give the amount as an argument");
return;
}
try {
int amount = Integer.parseInt(args[0]);
Map<integer, integer> coinSelectionMap = getCoins(amount);
System.out.println("CoinSelection = " + coinSelectionMap);
} catch (NumberFormatException e) {
System.err.println("Please specify amount as an integer");
}
}
private static Map<integer, integer> getCoins(int amount) {
Map<integer, integer> coinSelection = new LinkedHashMap<integer, integer>();
int rest = amount;
for (int coinValue : coinArray) {
int numberOfCoins = rest / coinValue;
if (numberOfCoins == 0) {
continue;
}
rest = rest % coinValue;
coinSelection.put(coinValue, numberOfCoins);
if (rest == 0) {
break;
}
}
return coinSelection;
}
}
Monday, May 7, 2012
Coin problem with greedy approach
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment