diff --git a/day10/part2.py b/day10/part2.py index dd71695..ed990b2 100644 --- a/day10/part2.py +++ b/day10/part2.py @@ -11,15 +11,12 @@ diff = lines[1:] - lines[:-1] one_count = 0 possibilities = 1 -one_cache = {} +one_cache = [1] def count_one_possibilities(one_cnt: int): - if one_cnt not in one_cache: - if one_cnt <= 1: - one_cache[one_cnt] = 1 - else: - one_cache[one_cnt] = sum(count_one_possibilities(less) for less in range(max(0, one_cnt - 3), one_cnt)) + for idx in range(len(one_cache), one_cnt+1): + one_cache.append(sum(one_cache[-3:])) return one_cache[one_cnt]