diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..00d9c72 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +*.in +*.ex* diff --git a/day02.py b/day02.py new file mode 100644 index 0000000..5aef6fd --- /dev/null +++ b/day02.py @@ -0,0 +1,35 @@ +import fileinput +from functools import reduce + +def main(): + part1 = 0 + part2 = 0 + + for i, line in enumerate(fileinput.input()): + line = line.strip() + subsets = line.split(": ")[1].split("; ") + + maxes = {} + + part1_possible = True + for subset in subsets: + for balls in subset.split(", "): + count, color = balls.split() + count = int(count) + maxes[color] = max(maxes.get(color, 0), count) + part1_possible = ( + part1_possible + and (color != "red" or count <= 12) + and (color != "green" or count <= 13) + and (color != "blue" or count <= 14) + ) + + if part1_possible: + part1 += i + 1 + + power = reduce(lambda x, y: x * y, maxes.values()) + part2 += power + + print(part1, part2) + +main()