aboutsummaryrefslogtreecommitdiff
path: root/challenge-151
diff options
context:
space:
mode:
authorLubos Kolouch <lubos@kolouch.net>2022-02-12 14:40:18 +0100
committerLubos Kolouch <lubos@kolouch.net>2022-02-12 14:40:18 +0100
commit4f2b0c70d8340837bed2c92c5dfbd816d6c612e8 (patch)
treec91161ae4201a5b28694167dd234522ddcf8e80c /challenge-151
parentf2fd51a80fb38eeba750758655779b3c42f4d0f1 (diff)
downloadperlweeklychallenge-club-4f2b0c70d8340837bed2c92c5dfbd816d6c612e8.tar.gz
perlweeklychallenge-club-4f2b0c70d8340837bed2c92c5dfbd816d6c612e8.tar.bz2
perlweeklychallenge-club-4f2b0c70d8340837bed2c92c5dfbd816d6c612e8.zip
Challenge 151 LK Task 2 Python
Diffstat (limited to 'challenge-151')
-rw-r--r--challenge-151/lubos-kolouch/python/ch-2.py26
1 files changed, 26 insertions, 0 deletions
diff --git a/challenge-151/lubos-kolouch/python/ch-2.py b/challenge-151/lubos-kolouch/python/ch-2.py
new file mode 100644
index 0000000000..d71588785d
--- /dev/null
+++ b/challenge-151/lubos-kolouch/python/ch-2.py
@@ -0,0 +1,26 @@
+cache = {}
+
+
+def get_houses_max(houses: list):
+ """Calculate the best way through the houses"""
+
+ try:
+ return cache[",".join(map(str, houses))]
+ except KeyError:
+ pass
+
+ max_value = 0
+ house_index = 0
+
+ for house_index, _ in enumerate(houses[2:]):
+ next_houses_values = get_houses_max(houses[2 + house_index :])
+ if next_houses_values > max_value:
+ max_value = next_houses_values
+
+ cache[",".join(map(str, houses))] = houses[0] + max_value
+ return houses[0] + max_value
+
+
+assert get_houses_max([2, 4, 5]) == 7
+cache = {}
+assert get_houses_max([4, 2, 3, 6, 5, 3]) == 13