Minimal Number Of Coins
Description
You find yourself in Bananaland trying to buy a banana. You are super rich so you have an unlimited supply of banana-coins, but you are trying to use as few coins as possible.
The coin values available in Bananaland are stored in a sorted array coins
. coins[0] = 1
, and for each i (0 < i < coins.length) coins[i]
is divisible by coins[i - 1]
. Find the minimal number of banana-coins you’ll have to spend to buy a banana given the banana’s price
.
Example
For coins = [1, 2, 10]
and price = 28
, the output should be
minimalNumberOfCoins(coins, price) = 6
.
You have to use 10
twice, and 2
four times.
Input/Output
-
[execution time limit] 4 seconds (js)
-
[input] array.integer coins
The coin values available in Bananaland.
Guaranteed constraints:
1 ≤ coins.length ≤ 5
,
1 ≤ coins[i] ≤ 120
. -
[input] integer price
A positive integer representing the price of the banana.
Guaranteed constraints:
8 ≤ price ≤ 250
. -
[output] integer
- The minimal number of coins you can use to buy the banana.
[JavaScript (ES6)] Syntax Tips
1
2
3
4
5
6
// Prints help message to the console
// Returns a string
function helloWorld(name) {
console.log("This prints to the console when you Run Tests");
return "Hello, " + name;
}
Solution
1
2
3
4
5
6
7
8
9
10
11
12
function minimalNumberOfCoins(coins, price) {
var count = 0;
coins.reverse();
for (var i = 0; i < coins.length; i++) {
if (price >= coins[i]) {
count += Math.floor(price / coins[i])
price = price % coins[i];
}
}
coins.reverse()
return count;
}