mirror of
https://github.com/danbulant/adventOfCode
synced 2026-05-19 12:18:44 +00:00
22 lines
702 B
Python
22 lines
702 B
Python
import re
|
|
import math
|
|
|
|
symbols = []
|
|
partnumbers = []
|
|
|
|
lineNumber = 0
|
|
for line in open("./input2"):
|
|
lineNumber += 1
|
|
partnumbers += [(lineNumber, m.group(), m.start(), m.end()) for m in re.finditer(r'\d+', line)]
|
|
symbols += [(lineNumber, m.group(), m.start(), m.end()) for m in re.finditer(r'[^\d.\n]', line)]
|
|
|
|
print(sum(
|
|
[
|
|
math.prod([int(number[1]) for number in foundNumbers])
|
|
for symbol, foundNumbers in [
|
|
(symbol, [partnumber for partnumber in partnumbers if abs(symbol[0] - partnumber[0]) <= 1 and partnumber[2] - 1 <= symbol[2] <= partnumber[3]])
|
|
for symbol in symbols if symbol[1] == '*'
|
|
]
|
|
if len(foundNumbers) == 2
|
|
]
|
|
))
|