Compare commits

...

2 Commits

Author SHA1 Message Date
a22eae433f solution 03p1 2024-01-04 23:28:00 +01:00
eb2c632a03 fixed some mistakes 2024-01-04 20:04:45 +01:00

View File

@@ -3,13 +3,13 @@
sol = 0 sol = 0
inputfile = open("input.txt", "r") inputfile = open("input.txt", "r")
lines = inputfile.readlines() lines = inputfile.readlines()
nums = dict() nums = {}
syms = dict() syms = {}
for line in range(len(lines)): for line in range(len(lines)):
tempnum = "" tempnum = ""
tempindex = -1 tempindex = -1
linenumdict = dict() linenumdict = {}
linesymdict = dict() linesymdict = {}
for index in range(len(lines[line])): for index in range(len(lines[line])):
tempchar = lines[line][index] tempchar = lines[line][index]
if tempchar.isdigit(): if tempchar.isdigit():
@@ -17,28 +17,75 @@ for line in range(len(lines)):
if tempindex < 0: if tempindex < 0:
tempindex = index tempindex = index
else: else:
if tempnum != "" and tempindex > 0 : if tempnum != "" and tempindex >= 0 :
linenumdict[tempindex] = tempnum linenumdict[tempindex] = tempnum
tempnum = "" tempnum = ""
tempindex = -1 tempindex = -1
if tempchar != "." and tempchar != "\n": if tempchar not in ('.', '\n'):
linesymdict[index] = tempchar linesymdict[index] = tempchar
if tempnum != "" and tempindex > 0: if tempnum != "" and tempindex >= 0:
linenumdict[tempindex] = tempnum linenumdict[tempindex] = tempnum
nums[line] = linenumdict nums[line] = linenumdict
syms[line] = linesymdict syms[line] = linesymdict
for ykey in nums: for ykey in nums:
for xkey in nums[ykey]: for xkey in nums[ykey]:
hassym = False hasNeigh= False
startx = xkey startx = xkey - 1
endx = xkey + len(nums[ykey][xkey]) endx = xkey + len(nums[ykey][xkey])
starty = ykey - 1 starty = ykey - 1
endy = ykey + 1 endy = ykey + 1
for y in range(starty, endy): for y in range(starty, endy + 1):
if y in syms.keys(): if y in syms:
for x in range(startx, endx): for x in range(startx, endx + 1):
if x in syms[y].keys(): if x in syms[y].keys():
hassym = True print(nums[ykey][xkey] + 'has Neigh: ' + syms[y][x])
if hassym: hasNeigh = True
if hasNeigh:
sol += int(nums[ykey][xkey]) sol += int(nums[ykey][xkey])
print(sol) print(sol)
#sometest:
lineno = 0
for line in lines:
line = line.replace('*', '.')
line = line.replace('=', '.')
line = line.replace('+', '.')
line = line.replace('%', '.')
line = line.replace('$', '.')
line = line.replace('#', '.')
line = line.replace('-', '.')
line = line.replace('&', '.')
line = line.replace('@', '.')
line = line.replace('/', '.')
while not line.find('..') < 0:
line = line.replace('..', '.')
line = line.replace('.', ' ')
line = line.replace('\n', '')
line = line.lstrip()
listnum = line.split()
diff = len(listnum)-len(nums[lineno])
if diff != 0:
print(diff)
lineno += 1
lineno = 0
for line in lines:
line = line.replace('1', '.')
line = line.replace('2', '.')
line = line.replace('3', '.')
line = line.replace('4', '.')
line = line.replace('5', '.')
line = line.replace('6', '.')
line = line.replace('7', '.')
line = line.replace('8', '.')
line = line.replace('9', '.')
line = line.replace('0', '.')
while not line.find('..') < 0:
line = line.replace('..', '.')
line = line.replace('.', ' ')
line = line.replace('\n', '')
line = line.lstrip()
listnum = line.split()
diff = len(listnum)-len(syms[lineno])
if diff != 0:
print(diff)
lineno += 1