From c6fc6dc80f436a7427e6e7d5572f8abfc0cb4318 Mon Sep 17 00:00:00 2001 From: Mohammad Sajid Anwar Date: Mon, 2 Sep 2024 13:06:44 +0100 Subject: - Added solutions by PokGoPun. - Added solutions by Peter Meszaros. - Added solutions by Mark Anderson. - Added solutions by Ali Moradi. - Added solutions by Feng Chang. - Added solutions by E. Choroba. --- challenge-285/eric-cheung/python/ch-1.py | 12 ++++++++++++ challenge-285/eric-cheung/python/ch-2.py | 26 ++++++++++++++++++++++++++ 2 files changed, 38 insertions(+) create mode 100755 challenge-285/eric-cheung/python/ch-1.py create mode 100755 challenge-285/eric-cheung/python/ch-2.py (limited to 'challenge-285') diff --git a/challenge-285/eric-cheung/python/ch-1.py b/challenge-285/eric-cheung/python/ch-1.py new file mode 100755 index 0000000000..adfc0fa624 --- /dev/null +++ b/challenge-285/eric-cheung/python/ch-1.py @@ -0,0 +1,12 @@ + +## arrRoutes = [["B", "C"], ["D", "B"], ["C", "A"]] ## Example 1 +arrRoutes = [["A", "Z"]] ## Example 2 + +arrDest = set([arrLoop[1] for arrLoop in arrRoutes]) +arrStart = set([arrLoop[0] for arrLoop in arrRoutes]) +arrOutput = [destLoop for destLoop in arrDest if destLoop not in arrStart] + +if len(arrOutput) == 1: + print (arrOutput[0]) +else: + print (arrOutput) diff --git a/challenge-285/eric-cheung/python/ch-2.py b/challenge-285/eric-cheung/python/ch-2.py new file mode 100755 index 0000000000..633da1d0a5 --- /dev/null +++ b/challenge-285/eric-cheung/python/ch-2.py @@ -0,0 +1,26 @@ + +## Ref. +## https://www.geeksforgeeks.org/coin-change-dp-7/ + +arrTypeCoin = ["HD", "Q", "D", "N", "P"] +arrCentsVal = [50, 25, 10, 5, 1] + +## nAmount = 9 ## Example 1 +## nAmount = 15 ## Example 2 +nAmount = 100 ## Example 3 + +def GetCount(arrCoins, nCount, nSum): + + if (nSum < 0 or nCount <= 0): + return 0 + + if (nSum == 0): + return 1 + + ## GetCount is nSum of solutions + ## (i) Excluding arrCoins[nCount - 1], Target Sum: nSum + ## (ii) Including arrCoins[nCount - 1], Target Sum: nSum - arrCoins[nCount - 1] + return GetCount(arrCoins, nCount - 1, nSum) + GetCount(arrCoins, nCount, nSum - arrCoins[nCount - 1]) + +## Main Program +print (GetCount(arrCentsVal, len(arrCentsVal), nAmount)) -- cgit