AdventOfCode/Python/2023/02/main.py
2024-12-02 11:16:28 -08:00

53 lines
1.4 KiB
Python

input = open("input", 'r')
data = []
for line in input:
values = line.rstrip().split(": ")[1]
rounds = values.split("; ")
rounds = [rnd.split(", ") for rnd in rounds]
this_game = []
for rnd in rounds:
this_round = []
for game in rnd:
vals = game.split(" ")
this_round.append(vals)
this_game.append(this_round)
data.append(this_game)
valid_games = set([i+1 for i in range(len(data))])
for i, game in enumerate(data):
for rnd in game:
for num, color in rnd:
if color == "red" and int(num) > 12:
if i+1 in valid_games:
valid_games.remove(i+1)
if color == "green" and int(num) > 13:
if i+1 in valid_games:
valid_games.remove(i+1)
if color == "blue" and int(num) > 14:
if i+1 in valid_games:
valid_games.remove(i+1)
print(sum(list(valid_games)))
# Part 2
power_sets = []
for i, game in enumerate(data):
min_red = 0
min_blue = 0
min_green = 0
for rnd in game:
for num, color in rnd:
if color == "red":
min_red = max(min_red, int(num))
if color == "green":
min_green = max(min_green, int(num))
if color == "blue":
min_blue = max(min_blue, int(num))
power_sets.append(min_blue*min_red*min_green)
print(sum(power_sets))