Files
AoC/2023/Day-03/day03-1.py
2023-12-03 09:14:51 +00:00

48 lines
1.6 KiB
Python
Executable File

#!/usr/bin/python3
import re
def main():
with open('input.txt', 'r') as input_file:
lines = input_file.readlines()
lines = [line.strip() for line in lines]
part_numbers = []
for y in range(len(lines)):
for digit in re.finditer(r'\d+', lines[y]):
part_number = 0
if(lines[y][digit.span()[0] - 1] != '.'
and not lines[y][digit.span()[0] - 1].isdigit()):
part_number = digit.group()
part_numbers.append(int(part_number))
continue
try:
if(lines[y][digit.span()[1]] != '.'
and not lines[y][digit.span()[1]].isdigit()):
part_number = digit.group()
part_numbers.append(int(part_number))
continue
except:
pass
for char in range(digit.span()[0] - 1, digit.span()[1] + 1):
try:
if lines[y-1][char] != '.' and not lines[y-1][char].isdigit():
part_number = digit.group()
part_numbers.append(int(part_number))
continue
except:
pass
try:
if lines[y+1][char] != '.' and not lines[y+1][char].isdigit():
part_number = digit.group()
part_numbers.append(int(part_number))
continue
except:
pass
print(sum(part_numbers))
if __name__ == '__main__':
main()