39 lines
1017 B
Python
39 lines
1017 B
Python
# Inlezen hele kaart naar list-of-lists
|
|
map = []
|
|
with open("input.txt", "r") as f:
|
|
for line in f.readlines():
|
|
line = line.strip()
|
|
map.append(list(line))
|
|
HEIGHT = len(map)
|
|
WIDTH = len(map[0])
|
|
|
|
def isSymbol(c):
|
|
# desda karakter geen nummer of punt is
|
|
return c != '.' and (c < '0' or c > '9')
|
|
def toevoegen(x, y):
|
|
# desda (x, y) aangrenzend is aan een symbool
|
|
for xi in range(x-1, x+2):
|
|
for yi in range(y-1, y+2):
|
|
xi = min(max(xi, 0), WIDTH-1)
|
|
yi = min(max(yi, 0), HEIGHT-1)
|
|
if isSymbol(map[yi][xi]):
|
|
return True
|
|
return False
|
|
|
|
teller = 0
|
|
nummer = 0
|
|
adding = False
|
|
for y in range(HEIGHT):
|
|
for x in range(WIDTH):
|
|
try:
|
|
n = int(map[y][x])
|
|
nummer *= 10
|
|
nummer += n
|
|
if toevoegen(x, y):
|
|
adding = True
|
|
except Exception as e:
|
|
if adding:
|
|
teller += nummer
|
|
adding = False
|
|
nummer = 0
|
|
print(teller) |