diff --git a/day8/1.py b/day8/1.py new file mode 100644 index 0000000..f78fa30 --- /dev/null +++ b/day8/1.py @@ -0,0 +1,34 @@ +import numpy + +with open(r'day8/input.txt', 'r') as input: + lines = list(map(lambda x: list(map(lambda y: int(y),x.split(','))),input.read().split('\n')[:-1])) + +def dist(a,b): + return (a[0]-b[0])**2 + (a[1]-b[1])**2 + (a[2]-b[2])**2 + +def find_best(i, exclusion = []): + best_distances[i] = [100000000,-1] + for j,node2 in enumerate(lines): + print(exclusion) + if i == j or j in exclusion: continue + distance = dist(node,node2) + best_distances[i] = min([distance,j], best_distances[i],key=lambda x : x[0]) + +best_distances = [] + +idx_circuit = {} + +for i,node in enumerate(lines): + idx_circuit[i] = i + best_distances.append(0) + find_best(i) + +pairs_left = 1000 +while pairs_left > 0: + i = numpy.argmin(best_distances) + print(i, best_distances[i]) + print(idx_circuit) + idx_circuit[best_distances[i][1]] = idx_circuit[i] + print(idx_circuit.keys()) + find_best(i, exclusion=filter(lambda x: idx_circuit[x] == idx_circuit[i], idx_circuit.keys())) + diff --git a/day8/2.py b/day8/2.py new file mode 100644 index 0000000..e947bba --- /dev/null +++ b/day8/2.py @@ -0,0 +1,3 @@ +with open(r'day8/input.txt', 'r') as input: + lines = input.read().split('\n')[:-1] + diff --git a/day8/input.txt b/day8/input.txt new file mode 100644 index 0000000..e98a3b6 --- /dev/null +++ b/day8/input.txt @@ -0,0 +1,20 @@ +162,817,812 +57,618,57 +906,360,560 +592,479,940 +352,342,300 +466,668,158 +542,29,236 +431,825,988 +739,650,466 +52,470,668 +216,146,977 +819,987,18 +117,168,530 +805,96,715 +346,949,466 +970,615,88 +941,993,340 +862,61,35 +984,92,344 +425,690,689