diff options
| author | Lubos Kolouch <lubos@kolouch.net> | 2022-02-12 14:40:18 +0100 |
|---|---|---|
| committer | Lubos Kolouch <lubos@kolouch.net> | 2022-02-12 14:40:18 +0100 |
| commit | 4f2b0c70d8340837bed2c92c5dfbd816d6c612e8 (patch) | |
| tree | c91161ae4201a5b28694167dd234522ddcf8e80c /challenge-151 | |
| parent | f2fd51a80fb38eeba750758655779b3c42f4d0f1 (diff) | |
| download | perlweeklychallenge-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.py | 26 |
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 |
