aoc24/day3/solution2.py

24 lines
716 B
Python
Raw Normal View History

2024-12-03 08:22:35 +01:00
import re
example = """xmul(2,4)&mul[3,7]!^don't()_mul(5,5)+mul(32,64](mul(11,8)undo()?mul(8,5))"""
input = open('input.txt').read()
def process_instructions(text):
mul_enabled = True
total_sum = 0
pattern = re.compile(r"(mul\((\d+),(\d+)\))|do\(\)|don't\(\)")
for match in pattern.finditer(text):
if match.group(1):
if mul_enabled:
num1 = int(match.group(2))
num2 = int(match.group(3))
total_sum += num1 * num2
elif match.group(0) == 'do()':
mul_enabled = True
elif match.group(0) == "don't()":
mul_enabled = False
return total_sum
print(process_instructions(input))