python
solution
import re
import aoc
def setup():
return (aoc.get_lines(3), 0)
def one():
lines, acc = setup()
for line in lines:
ins = re.findall(r'mul\(\d+,\d+\)', line)
for i in ins:
p = [int(x) for x in re.findall(r'\d+', i)]
acc += p[0] * p[1]
print(acc)
def two():
lines, acc = setup()
on = 1
for line in lines:
ins = re.findall(r"do\(\)|don't\(\)|mul\(\d+,\d+\)", line)
for i in ins:
if i == "do()":
on = 1
elif i == "don't()":
on = 0
elif on:
p = [int(x) for x in re.findall(r'\d+', i)]
acc += p[0] * p[1]
print(acc)
one()
two()