From ec2723f296baf23d023e02378f0d81833f61e6c9 Mon Sep 17 00:00:00 2001 From: Cfengsu2002 Date: Sun, 16 Feb 2025 04:33:47 -0500 Subject: [PATCH 1/2] Update minimum_coin_change.py Change with format --- greedy_methods/minimum_coin_change.py | 62 ++------------------------- 1 file changed, 3 insertions(+), 59 deletions(-) diff --git a/greedy_methods/minimum_coin_change.py b/greedy_methods/minimum_coin_change.py index c18cf074c..62bf10fdf 100644 --- a/greedy_methods/minimum_coin_change.py +++ b/greedy_methods/minimum_coin_change.py @@ -1,59 +1,13 @@ +import sys from doctest import testmod - -""" -Test cases: -Do you want to enter your denominations ? (Y/N) :N -Enter the change you want to make in Indian Currency: 987 -Following is minimal change for 987 : -500 100 100 100 100 50 20 10 5 2 - -Do you want to enter your denominations ? (Y/N) :Y -Enter number of denomination:10 -1 -5 -10 -20 -50 -100 -200 -500 -1000 -2000 -Enter the change you want to make: 18745 -Following is minimal change for 18745 : -2000 2000 2000 2000 2000 2000 2000 2000 2000 500 200 20 20 5 - -Do you want to enter your denominations ? (Y/N) :N -Enter the change you want to make: 0 -The total value cannot be zero or negative. -Do you want to enter your denominations ? (Y/N) :N -Enter the change you want to make: -98 -The total value cannot be zero or negative. - -Do you want to enter your denominations ? (Y/N) :Y -Enter number of denomination:5 -1 -5 -100 -500 -1000 -Enter the change you want to make: 456 -Following is minimal change for 456 : -100 100 100 100 5 5 5 5 5 5 5 5 5 5 5 1 -""" - - def find_minimum_change(denominations: list[int], value: int) -> list[int]: """ Find the minimum change from the given denominations and value. - Args: denominations (list[int]): List of available denominations. value (int): The amount of money to be changed. - Returns: list[int]: List of denominations representing the minimal change. - Examples: >>> find_minimum_change([1, 5, 10, 20, 50, 100, 200, 500, 1000, 2000], 18745) [2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 2000, 500, 200, 20, 20, 5] @@ -66,30 +20,22 @@ def find_minimum_change(denominations: list[int], value: int) -> list[int]: >>> find_minimum_change([1, 5, 100, 500, 1000], 456) [100, 100, 100, 100, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 1] """ - # Sort denominations in descending order (biggest first) denominations.sort(reverse=True) - # Initialize Result answer = [] - # Find minimal change using largest denominations first for denomination in denominations: while value >= denomination: value -= denomination answer.append(denomination) - return answer - - # Driver Code if __name__ == "__main__": # Run doctest testmod() - denominations = [] value = 0 - if ( input("Do you want to enter your denominations ? (y/n): ").strip().lower() == "y" @@ -105,7 +51,7 @@ if __name__ == "__main__": ) except ValueError: print("Invalid input. Please enter valid numbers.") - exit(1) + sys.exit(1) else: # Default denominations for Indian Currency denominations = [1, 2, 5, 10, 20, 50, 100, 500, 2000] @@ -113,11 +59,9 @@ if __name__ == "__main__": value = int(input("Enter the change you want to make: ").strip()) except ValueError: print("Invalid input. Please enter a valid number.") - exit(1) - + sys.exit(1) # Ensure denominations are sorted in descending order denominations.sort(reverse=True) - if value <= 0: print("The total value cannot be zero or negative.") else: From 8112c055eb6d397c114fc1c9e0aae29a2049f9b6 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Sun, 16 Feb 2025 09:34:10 +0000 Subject: [PATCH 2/2] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- greedy_methods/minimum_coin_change.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/greedy_methods/minimum_coin_change.py b/greedy_methods/minimum_coin_change.py index 62bf10fdf..f0fff4de6 100644 --- a/greedy_methods/minimum_coin_change.py +++ b/greedy_methods/minimum_coin_change.py @@ -1,5 +1,7 @@ import sys from doctest import testmod + + def find_minimum_change(denominations: list[int], value: int) -> list[int]: """ Find the minimum change from the given denominations and value. @@ -30,6 +32,8 @@ def find_minimum_change(denominations: list[int], value: int) -> list[int]: value -= denomination answer.append(denomination) return answer + + # Driver Code if __name__ == "__main__": # Run doctest