 
  Data Structure Data Structure
 Networking Networking
 RDBMS RDBMS
 Operating System Operating System
 Java Java
 MS Excel MS Excel
 iOS iOS
 HTML HTML
 CSS CSS
 Android Android
 Python Python
 C Programming C Programming
 C++ C++
 C# C#
 MongoDB MongoDB
 MySQL MySQL
 Javascript Javascript
 PHP PHP
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
Program to find number of coins needed to make the changes in Python
Suppose we have coins of different denominations (1,5,10,25) and a total amount of money amount. We have to define one function to compute the fewest number of coins that we need to make up that amount. So if the input is 64, the output is 7. This is formed using 25 + 25 + 10 + 1 + 1 + 1 + 1 = 64.
To solve this, we will follow these steps −
- if amount = 0, then return 0
- if minimum of coins array > amount, then return -1
- define one array called dp, of size amount + 1, and fill this with -1
- for i in range coins array- if i > length of dp – 1, then skip the next part, go for the next iteration
- dp[i] := 1
- for j in range i + 1 to amount- if dp[j – 1] = -1, then skip the next part, go for the next iteration
- otherwise if dp[j] = -1, then dp[j] := dp[j - i] + 1
- otherwise dp[j] := minimum of dp[j] and dp[j – i] + 1
 
 
- return dp[amount]
Let us see the following implementation to get better understanding −
Example
class Solution(object): def coinChange(self, amount): coins = [1,5,10,25] if amount == 0 : return 0 if min(coins) > amount: return -1 dp = [-1 for i in range(0, amount + 1)] for i in coins: if i > len(dp) - 1: continue dp[i] = 1 for j in range(i + 1, amount + 1): if dp[j - i] == -1: continue elif dp[j] == -1: dp[j] = dp[j - i] + 1 else: dp[j] = min(dp[j], dp[j - i] + 1) return dp[amount] ob1 = Solution() print(ob1.coinChange(64))
Input
64
Output
7
Advertisements
 