adventofcode2023/day02/sol.py

35 lines
849 B
Python

import sys
def product(items):
t = 1
for x in items:
t *= x
return t
input = sys.stdin
total = 0
power = 0
game_num = 0
for line in input:
game, _, data = line.partition(": ")
game_num += 1
takes = data.split(";")
possible = True
minset = {'green':0, 'blue':0, 'red':0}
for t in takes:
cubes = t.split(",")
cubes = [x.split() for x in t.split(",")]
cubes = {color: int(n) for n, color in cubes}
possible = possible and \
cubes.get('green', 0) <= 13 and \
cubes.get('blue', 0) <= 14 and \
cubes.get("red", 0) <= 12
for color, n in cubes.items():
minset[color] = max(minset[color], n)
if possible:
total += game_num
power += product(minset.values())
print(total)
print(power)