This exercise is known to be challenging for many. To make it more approachable, the introduction has been designed to explain the task using a simple, engaging story. As part of these revisions, the examples in the instructions have been adjusted to use generic coins with specific values, avoiding references to specific denominations like nickels or quarters.
Introduction
In the mystical village of Coinholt, you stand behind the counter of your bakery, arranging a fresh batch of pastries. The door creaks open, and in walks Denara, a skilled merchant with a keen eye for quality goods. After a quick meal, she slides a shimmering coin across the counter, representing a value of 100 units.
You smile, taking the coin, and glance at the total cost of the meal: 88 units. That means you need to return 12 units in change.
Denara holds out her hand expectantly. âJust give me the fewest coins,â she says with a smile. âMy pouch is already full, and I donât want to risk losing them on the road.â
You know you have a few options. âWe have Lumis (worth 10 units), Viras (worth 5 units), and Zenth (worth 2 units) available for change.â
You quickly calculate the possibilities in your head:
- one Lumis (1 Ă 10 units) + one Zenth (1 Ă 2 units) = 2 coins total
- two Viras (2 Ă 5 units) + one Zenth (1 Ă 2 units) = 3 coins total
- six Zenth (6 Ă 2 units) = 6 coins total
âThe best choice is two coins: one Lumis and one Zenth,â you say, handing her the change.
Denara smiles, clearly impressed. âAs always, youâve got it right.â
Instructions
Correctly determine the fewest number of coins to be given to a customer such that the sum of the coinsâ value would equal the correct amount of change.
Examples
- An amount of 15 with available coin values [1, 5, 10, 25, 100] should return one coin of value 5 and one coin of value 10, or [5, 10].
- An amount of 40 with available coin values [1, 5, 10, 25, 100] should return one coin of value 5, one coin of value 10, and one coin of value 25, or [5, 10, 25].
Edge cases
- Does your algorithm work for any given set of coins?
- Can you ask for negative change?
- Can you ask for a change value smaller than the smallest coin value?