diff options
| author | Mohammad Sajid Anwar <Mohammad.Anwar@yahoo.com> | 2024-09-02 22:13:41 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-09-02 22:13:41 +0100 |
| commit | d580b9b447884482e4d873cd5547bdfb32b52379 (patch) | |
| tree | de38e962ea63e888520293125a50b34a5399bdff | |
| parent | 25b6f89a6bbb4860b072d2f20ab72d6f4e4aa57d (diff) | |
| parent | 9abb58c9208783fbb2ab6c7b0c25adad8168d5e7 (diff) | |
| download | perlweeklychallenge-club-d580b9b447884482e4d873cd5547bdfb32b52379.tar.gz perlweeklychallenge-club-d580b9b447884482e4d873cd5547bdfb32b52379.tar.bz2 perlweeklychallenge-club-d580b9b447884482e4d873cd5547bdfb32b52379.zip | |
Merge pull request #10762 from pauloscustodio/master
Add solutions
| -rw-r--r-- | challenge-285/paulo-custodio/python/ch-1.py | 40 | ||||
| -rw-r--r-- | challenge-285/paulo-custodio/python/ch-2.py | 58 |
2 files changed, 98 insertions, 0 deletions
diff --git a/challenge-285/paulo-custodio/python/ch-1.py b/challenge-285/paulo-custodio/python/ch-1.py new file mode 100644 index 0000000000..bf539e613b --- /dev/null +++ b/challenge-285/paulo-custodio/python/ch-1.py @@ -0,0 +1,40 @@ +#!/usr/bin/env python3 + +# Challenge 285 +# +# Task 1: No Connection +# Submitted by: Mohammad Sajid Anwar +# +# You are given a list of routes, @routes. +# +# Write a script to find the destination with no further outgoing connection. +# Example 1 +# +# Input: @routes = (["B","C"], ["D","B"], ["C","A"]) +# Output: "A" +# +# "D" -> "B" -> "C" -> "A". +# "B" -> "C" -> "A". +# "C" -> "A". +# "A". +# +# Example 2 +# +# Input: @routes = (["A","Z"]) +# Output: "Z" + +import sys + +def endpoints(routes): + endp = {} + for p in routes: + if not p[1] in endp: + endp[p[1]] = 1 + for p in routes: + if p[0] in endp: + del endp[p[0]] + return sorted(list(endp.keys())) + +pairs = (" ".join(sys.argv[1:])).split(",") +routes = [x.split() for x in pairs] +print(", ".join(endpoints(routes))) diff --git a/challenge-285/paulo-custodio/python/ch-2.py b/challenge-285/paulo-custodio/python/ch-2.py new file mode 100644 index 0000000000..9ebd768aa6 --- /dev/null +++ b/challenge-285/paulo-custodio/python/ch-2.py @@ -0,0 +1,58 @@ +#!/usr/bin/env python3 + +# Challenge 285 +# +# Task 2: Making Change +# Submitted by: David Ferrone +# +# Compute the number of ways to make change for given amount in cents. By using +# the coins e.g. Penny, Nickel, Dime, Quarter and Half-dollar, in how many +# distinct ways can the total value equal to the given amount? Order of coin +# selection does not matter. +# +# A penny (P) is equal to 1 cent. +# A nickel (N) is equal to 5 cents. +# A dime (D) is equal to 10 cents. +# A quarter (Q) is equal to 25 cents. +# A half-dollar (HD) is equal to 50 cents. +# +# Example 1 +# +# Input: $amount = 9 +# Ouput: 2 +# +# 1: 9P +# 2: N + 4P +# +# Example 2 +# +# Input: $amount = 15 +# Ouput: 6 +# +# 1: D + 5P +# 2: D + N +# 3: 3N +# 4: 2N + 5P +# 5: N + 10P +# 6: 15P +# +# Example 3 +# +# Input: $amount = 100 +# Ouput: 292 + +import sys + +COINS = [50,25,10,5,1] + +def compute_num_ways(amount, coins): + while len(coins) > 1 and coins[0] > amount: + coins = coins[1:] + if len(coins) == 1: + return 1 + count = 0 + for v in range(0, amount+1, coins[0]): + count += compute_num_ways(amount-v, coins[1:]) + return count + +print(compute_num_ways(int(sys.argv[1]), COINS)) |
