diff options
Diffstat (limited to 'day15.py')
-rw-r--r-- | day15.py | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/day15.py b/day15.py new file mode 100644 index 0000000..33dc8d3 --- /dev/null +++ b/day15.py @@ -0,0 +1,31 @@ +#!/usr/bin/env python + +import numpy as np + +properties = np.array([[3, 0, 0, -3, 2], + [-3, 3, 0, 0, 9], + [-1, 0, 4, 0, 1], + [0, 0, -2, 2, 8]]) + +def get_scores(count_calories=False): + max_score = 0 + for sugar in range(100): + for sprinkles in range(100-sugar): + for candy in range(100-sugar-sprinkles): + chocolate = 100-sugar-sprinkles-candy + counts = np.array([sugar, sprinkles, candy, chocolate]) + scores = properties.T @ counts + if count_calories and scores[-1] != 500: + continue + if np.any(scores[:-1] <= 0): + continue + else: + score = np.prod(scores[:-1]) + max_score = max(max_score, score) + return max_score + +# part 1 +print(get_scores()) + +# part 2 +print(get_scores(True)) |