Improve 2024 day 3 regex

This commit is contained in:
2024-12-03 00:52:24 -05:00
parent b627e97c5a
commit 0fb75687d1

View File

@@ -5,22 +5,20 @@ from lib import ints
data = get_data(__file__) data = get_data(__file__)
t = 0 t1 = 0
r = re.compile(r'mul\(\d+,\d+\)') t2 = 0
for match in r.findall(data):
a, b = ints(match)
t += a * b
print(t)
t = 0
enabled = True enabled = True
for i in range(len(data.strip())): r = re.compile(r"mul\(\d+,\d+\)|do\(\)|don't\(\)")
m = r.match(data[i:]) for m in r.findall(data):
if m and enabled: if m == "do()":
a, b = ints(m.group())
t += a * b
elif data[i:].startswith("do()"):
enabled = True enabled = True
elif data[i:].startswith("don't()"): elif m == "don't()":
enabled = False enabled = False
print(t) else:
a, b = ints(m)
t1 += a * b
if enabled:
t2 += a * b
print(t1)
print(t2)