adventofcode-2024/03/solve_part2.py

42 lines
1.1 KiB
Python
Raw Permalink Normal View History

2024-12-03 06:43:43 +01:00
#!/usr/bin/env python
import re
2024-12-04 07:49:54 +01:00
2024-12-03 06:43:43 +01:00
def read_input(filename):
with open(filename) as f:
for line in f:
line = line.strip()
yield line
def main(args):
memory = read_input(args.file)
result = 0
mul_enabled = True
for memory in read_input(args.file):
mul_list = re.findall(r'mul\(\d+\,\d+\)|don\'t\(\)|do\(\)', memory)
for mul in mul_list:
if mul.startswith('don'):
mul_enabled = False
continue
if mul.startswith('do'):
mul_enabled = True
continue
if not mul_enabled:
continue
tmp = re.search(r'mul\((\d+),(\d+)\)', mul)
if tmp is not None:
x = int(tmp[1]) * int(tmp[2])
result += x
print(result)
if __name__ == "__main__":
import argparse
parser = argparse.ArgumentParser(
prog='AdventOfCode 2024, Day 03, part 2',
)
parser.add_argument('-f', '--file', required=True)
args = parser.parse_args()
main(args)