Advent_of_Code/2023/02/main.py
2023-12-02 18:20:59 +01:00

59 lines
1.2 KiB
Python

#! Part 1
file = open("input.txt").readlines()
sum = 0
for line in range(len(file)):
game = file[line].split(";")
possible = True
for set in game:
red_pos = set.find(" r")
green_pos = set.find(" g")
blue_pos = set.find(" b")
positions = [red_pos, green_pos, blue_pos]
vals = [0, 0, 0]
for pos in range(len(positions)):
if positions[pos] != -1:
vals[pos] = int(set[positions[pos]-2:positions[pos]])
if vals[0] > 12 or vals[1] > 13 or vals[2] > 14:
possible = False
if possible:
sum += line+1
print("Part 1: " + str(sum))
#! Part 2
file = open("input.txt").readlines()
sum = 0
for line in range(len(file)):
game = file[line].split(";")
game_sum = 0
max_vals = [0, 0, 0]
for set in game:
red_pos = set.find(" r")
green_pos = set.find(" g")
blue_pos = set.find(" b")
positions = [red_pos, green_pos, blue_pos]
vals = [0, 0, 0]
for pos in range(len(positions)):
if positions[pos] != -1:
vals[pos] = int(set[positions[pos]-2:positions[pos]])
for i in range(len(max_vals)):
if vals[i] > max_vals[i]:
max_vals[i] = vals[i]
game_sum += max_vals[0] * max_vals[1] * max_vals[2]
sum += game_sum
print("Part 2: " + str(sum))