Files
AdventOfCode/2024/08/08.py
2024-12-09 10:59:37 +01:00

39 lines
1.2 KiB
Python

def ptAdd(pt1,pt2):
return [pt1[0]+pt2[0],pt1[1]+pt2[1]]
def ptSub(pt1,pt2):
return [pt1[0]-pt2[0],pt1[1]-pt2[1]]
def antennae(arr):
out = {}
for i in range(0,len(arr)):
for j in range(0,len(arr[i])):
if arr[i][j] != ".":
if arr[i][j] in out:
out[arr[i][j]].append([i,j])
else:
out[arr[i][j]] = [[i,j]]
return out
def antinodes(antennae):
out = []
for a in antennae:
for i in range(0,len(antennae[a])):
for j in range(1,len(antennae[a])):
pt1 = antennae[a][i]
pt2 = antennae[a][j]
an1 = ptAdd(pt1,ptSub(pt1,pt2))
an2 = ptAdd(pt2,ptSub(pt2,pt1))
if an2 not in out and an2[0] >= 0 and an2[1] >= 0 and an2[0] < 50 and an2[1] < 50:
out.append(an2)
if an1 not in out and an1[0] >= 0 and an1[1] >= 0 and an1[0] < 50 and an1[1] < 50:
out.append(an1)
return out
arr = []
with open("input08.txt") as file:
for line in file:
arr.append([])
for a in line[:-1]:
arr[-1].append(a)
print(len(antinodes(antennae(arr))))