diff options
| author | Mohammad Sajid Anwar <Mohammad.Anwar@yahoo.com> | 2023-06-04 22:14:44 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-06-04 22:14:44 +0100 |
| commit | 75fe23b282113e38b899ae4ba0e6c8aa49fad7a0 (patch) | |
| tree | 2a01f87b83718f8feded7e2cdeed1adb6121e040 /challenge-219/sgreen/python | |
| parent | 9cb0cb6ea151d9a154eedb143e1ad173eb2a8bb6 (diff) | |
| parent | a1e05c248e0f9311e2ee1e70972f3e6852d7cdf5 (diff) | |
| download | perlweeklychallenge-club-75fe23b282113e38b899ae4ba0e6c8aa49fad7a0.tar.gz perlweeklychallenge-club-75fe23b282113e38b899ae4ba0e6c8aa49fad7a0.tar.bz2 perlweeklychallenge-club-75fe23b282113e38b899ae4ba0e6c8aa49fad7a0.zip | |
Merge pull request #8174 from simongreen-net/master
Simon's solution to challenge 219
Diffstat (limited to 'challenge-219/sgreen/python')
| -rwxr-xr-x | challenge-219/sgreen/python/ch-1.py | 13 | ||||
| -rwxr-xr-x | challenge-219/sgreen/python/ch-2.py | 37 |
2 files changed, 50 insertions, 0 deletions
diff --git a/challenge-219/sgreen/python/ch-1.py b/challenge-219/sgreen/python/ch-1.py new file mode 100755 index 0000000000..f3e6fb57f9 --- /dev/null +++ b/challenge-219/sgreen/python/ch-1.py @@ -0,0 +1,13 @@ +#!/usr/bin/env python + +import sys + + +def main(array): + solution = sorted([x ** 2 for x in array]) + print(*solution, sep=', ') + + +if __name__ == '__main__': + array = [int(n) for n in sys.argv[1:]] + main(array) diff --git a/challenge-219/sgreen/python/ch-2.py b/challenge-219/sgreen/python/ch-2.py new file mode 100755 index 0000000000..a421ef00d9 --- /dev/null +++ b/challenge-219/sgreen/python/ch-2.py @@ -0,0 +1,37 @@ +#!/usr/bin/env python + +import sys + + +def buy_pass(passes, travel_on): + if len(travel_on) == 0: + return 0 + + first_day = travel_on[0] + minimum_spend = None + + for days, cost in passes.items(): + spend = cost + \ + buy_pass(passes, [i for i in travel_on if i >= first_day + days]) + if minimum_spend is None or spend < minimum_spend: + minimum_spend = spend + + return minimum_spend + + +def main(array): + # Take the first three values off + passes = {} + passes[1] = array.pop(0) + passes[7] = array.pop(0) + passes[30] = array.pop(0) + + # Note the days we want to travel on + travel_on = sorted(array) + spent = buy_pass(passes, travel_on) + print(spent) + + +if __name__ == '__main__': + array = [int(n) for n in sys.argv[1:]] + main(array) |
