Files
python-aoc-2023/day01/part2.py
Sebastian Seedorf 14c3375905 Day 01 (minified)
2023-12-09 23:37:58 +01:00

20 lines
545 B
Python

#!/usr/bin/env python3
import re
STRINGS = ["one", "two", "three", "four", "five", "six", "seven", "eight", "nine"]
lines = (x.strip() for x in open("input.txt"))
total = 0
regexFirst = re.compile(f"^.*?(\\d|{'|'.join(STRINGS)})")
regexLast = re.compile(f"^.*(\\d|{'|'.join(STRINGS)})")
def parse(value):
return str(STRINGS.index(value) + 1) if value in STRINGS else value
for line in lines:
first = parse(regexFirst.match(line).group(1))
last = parse(regexLast.match(line).group(1))
total += int(first + last)
print(total)