2023 day 3 part 2 solved

master
kwout 10 months ago
parent 8bd7804a42
commit ec923093d4
  1. 36
      2023/3.py

@ -1,8 +1,21 @@
lines = [i for i in open("input.txt", 'r').read().splitlines()]
sum = 0
sum2 = 0
nonqual = ['0','1','2','3','4','5','6','7','8','9','.']
gears = {}
def checkValid(x,y):
if lines[x][y] == "*":
coord = str(x) + "," + str(y)
if coord not in gears:
gears[coord] = [int(num)]
else:
gears[coord].append(int(num))
return True
if lines[x][y] not in nonqual:
return True
for i in range(len(lines)):
columns = len(lines[i])
j = 0
@ -19,19 +32,22 @@ for i in range(len(lines)):
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:
if i != 0 and checkValid(i-1, x):
valid = True
if i != len(lines)-1 and checkValid(i+1, x):
valid = True
if j != 0 and checkValid(i, j-1):
valid = True
if j+lennum != columns and not lines[i][j+lennum] in nonqual:
if j+lennum != columns and checkValid(i, j+lennum):
valid = True
if valid:
sum += int(num)
j += lennum
j += 1
j += 1
print(sum)
for coord in gears:
if len(gears[coord]) == 2:
sum2 += gears[coord][0] * gears[coord][1]
print(sum)
print(sum2)
Loading…
Cancel
Save