From 8bd7804a4258d388061c2469aea4a0b6bed1b9a2 Mon Sep 17 00:00:00 2001 From: kwout Date: Sun, 3 Dec 2023 11:25:26 -0500 Subject: [PATCH] 2023 day 3 part 1 solved --- 2023/3.py | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 2023/3.py diff --git a/2023/3.py b/2023/3.py new file mode 100644 index 0000000..3d2edda --- /dev/null +++ b/2023/3.py @@ -0,0 +1,37 @@ +lines = [i for i in open("input.txt", 'r').read().splitlines()] + +sum = 0 +nonqual = ['0','1','2','3','4','5','6','7','8','9','.'] + +for i in range(len(lines)): + columns = len(lines[i]) + j = 0 + while j < columns: + if lines[i][j].isnumeric(): + num = "" + valid = False + for k in range(len(lines[i])): + if j+k >= columns: + break + if lines[i][j+k].isnumeric(): + num += lines[i][j+k] + else: + break + lennum = len(num) + for x in range(0 if j == 0 else j-1, columns if j + lennum == columns else j+lennum+1): + if i != 0: + if not lines[i-1][x] in nonqual: + valid = True + if i != len(lines)-1: + if not lines[i+1][x] in nonqual: + valid = True + if j != 0 and not lines[i][j-1] in nonqual: + valid = True + if j+lennum != columns and not lines[i][j+lennum] in nonqual: + valid = True + if valid: + sum += int(num) + j += lennum + j += 1 + +print(sum) \ No newline at end of file