aboutsummaryrefslogtreecommitdiff
path: root/challenge-285/eric-cheung/python
diff options
context:
space:
mode:
authorMohammad Sajid Anwar <mohammad.anwar@yahoo.com>2024-09-02 13:06:44 +0100
committerMohammad Sajid Anwar <mohammad.anwar@yahoo.com>2024-09-02 13:06:44 +0100
commitc6fc6dc80f436a7427e6e7d5572f8abfc0cb4318 (patch)
tree4a30bf4e4a4ac9963a35645d5446fe05914ea83f /challenge-285/eric-cheung/python
parent91304dfdc8fe93b9616a8c8292386c21260937a7 (diff)
downloadperlweeklychallenge-club-c6fc6dc80f436a7427e6e7d5572f8abfc0cb4318.tar.gz
perlweeklychallenge-club-c6fc6dc80f436a7427e6e7d5572f8abfc0cb4318.tar.bz2
perlweeklychallenge-club-c6fc6dc80f436a7427e6e7d5572f8abfc0cb4318.zip
- 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.
Diffstat (limited to 'challenge-285/eric-cheung/python')
-rwxr-xr-xchallenge-285/eric-cheung/python/ch-1.py12
-rwxr-xr-xchallenge-285/eric-cheung/python/ch-2.py26
2 files changed, 38 insertions, 0 deletions
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))