31 lines
807 B
Python
31 lines
807 B
Python
#!/usr/bin/env python
|
|
# 2024 - Advent Of Code 3 - part 2
|
|
|
|
import re
|
|
|
|
# file = 'input_example2.txt'
|
|
file = 'input.txt'
|
|
|
|
# pylint: disable=consider-using-with
|
|
input_lines = [line.strip('\n') for line in open(file, encoding="utf-8")]
|
|
|
|
multilines = ''.join(input_lines)
|
|
|
|
re_mul = re.compile(r'mul\((\d+),(\d+)\)')
|
|
fmultilines = re.sub(r'don\'t\(\).+?do\(\)', '', multilines)
|
|
|
|
|
|
# dirty hack, use 3 times in a row to remove all trailling don't()
|
|
fmultilines2 = re.sub(r'(.+)don\'t\(\).*', r'\1', fmultilines)
|
|
fmultilines3 = re.sub(r'(.+)don\'t\(\).*', r'\1', fmultilines2)
|
|
fmultilines4 = re.sub(r'(.+)don\'t\(\).*', r'\1', fmultilines3)
|
|
|
|
accum = 0
|
|
m = re_mul.findall(fmultilines4)
|
|
if m:
|
|
print(m)
|
|
m_list = [int(x[0]) * int(x[1]) for x in m]
|
|
# print(m_list)
|
|
accum += sum(m_list)
|
|
|
|
print(f'{accum=}')
|