diff --git a/2024/08/08.py b/2024/08/08.py index 308e97b..5c90990 100644 --- a/2024/08/08.py +++ b/2024/08/08.py @@ -19,7 +19,7 @@ def antinodes(antennae): out = [] for a in antennae: for i in range(0,len(antennae[a])): - for j in range(1,len(antennae[a])): + for j in range(i+1,len(antennae[a])): pt1 = antennae[a][i] pt2 = antennae[a][j] an1 = ptAdd(pt1,ptSub(pt1,pt2)) @@ -30,10 +30,30 @@ def antinodes(antennae): out.append(an1) return out +def resonantAntinodes(antennae): + out = [] + for a in antennae: + for i in range(0,len(antennae[a])): + for j in range(i+1,len(antennae[a])): + pt1 = antennae[a][i] + pt2 = antennae[a][j] + an1 = ptAdd(pt1, ptSub(pt1, pt2)) + while an1[0] >= 0 and an1[1] >= 0 and an1[0] < 50 and an1[1] < 50: + if not an1 in out: + out.append(pt1) + an1 = ptAdd(an1, ptSub(an1, pt2)) + an2 = ptAdd(pt2,ptSub(pt2,pt1)) + while an2[0] >= 0 and an2[1] >= 0 and an2[0] < 50 and an2[1] < 50: + if not an2 in out: + out.append(pt2) + an2 = ptAdd(an2, ptSub(an2, pt1)) + 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)))) \ No newline at end of file +print(len(antinodes(antennae(arr)))) +print(len(resonantAntinodes(antennae(arr)))) \ No newline at end of file diff --git a/2024/09/09.py b/2024/09/09.py index e3cce80..766606f 100644 --- a/2024/09/09.py +++ b/2024/09/09.py @@ -24,12 +24,15 @@ def orderDump(dump): i = 0 for a in dump: if a == -1: - if dump[-1] != -1: - arr[i] = dump[-1] - i += 1 - else: - pass - dump.pop(-1) + flag = True + while flag: + if dump[-1] != -1: + arr[i] = dump[-1] + i += 1 + flag = False + else: + pass + dump.pop(-1) else: arr[i] = a i += 1