Files
aoc_2024/day3.py
Marguerite Miallier c394f7298d trois premiers jours
2024-12-03 19:04:09 +01:00

72 lines
2.0 KiB
Python

# data = "xmul(2,4)&mul[3,7]!^don't()_mul(5,5)+mul(32,64](mul(11,8)undo()?mul(8,5))"
PART1 = False
with open('day3.txt') as f:
l = [line.rstrip() for line in f]
data = ""
for line in l:
data += line
mul = []
if PART1:
for i in range(len(data)):
window = data[i:i+4]
print("window=",window)
if window == "mul(":
for j in range(i+4,min(i+4+8,len(data))):
print(data[j])
if data[j]==")":
to_test = data[i+4:j]
# print("to_test=", to_test)
to_test = to_test.split(",")
# print("to_test=", to_test)
if len(to_test)==2:
try :
a,b = int(to_test[0]),int(to_test[1])
print("ab = ", a, b)
mul.append(a*b)
except :
# print("not int")
pass
else :
do = True
for i in range(len(data)):
window_do = data[i:i+7]
print("window_do=",window_do)
if window_do == "don't()":
do = False
elif "do()" in window_do:
do = True
window = data[i:i+4]
print("window=",window)
if window== "mul(":
for j in range(i+4,min(i+4+8,len(data))):
print(data[j])
if data[j]==")":
to_test = data[i+4:j]
# print("to_test=", to_test)
to_test = to_test.split(",")
# print("to_test=", to_test)
if len(to_test)==2 and do:
try :
a,b = int(to_test[0]),int(to_test[1])
print("ab = ", a, b)
mul.append(a*b)
except :
print("not int")
pass
print(mul)
tot = sum(mul)
print(tot)