aoc-2025/08/main.py
2025-12-08 14:47:53 -08:00

49 lines
1.4 KiB
Python
Executable file

#!/bin/python
from logging import debug, DEBUG, basicConfig
from sys import argv
from math import sqrt
def parse_input(input_filepath: str) -> list[tuple[int, ...]]:
with open(file=input_filepath, mode="r") as input_file:
input_data: list[str] = input_file.readlines()
debug(f"RAW INPUT: {input_data}")
return [tuple(int(y) for y in x.split(",")) for x in input_data]
def get_distances(positions: list[tuple[int, ...]]) -> list[tuple[float, int, int]]:
distances: list[tuple[float, int, int]] = []
for a in range(len(positions)):
for b in range(a + 1, len(positions)):
distances.append(
(
sqrt(
pow(positions[a][0] - positions[b][0], 2)
+ pow(positions[a][1] - positions[b][1], 2)
+ pow(positions[a][2] - positions[b][2], 2)
),
a,
b,
)
)
distances.sort(key=lambda x: x[0])
return distances
def main() -> None:
input_filepath = "input/test_junction_boxes.txt"
junction_boxes = parse_input(input_filepath)
distances = get_distances(junction_boxes)
debug(f"DISTANCES BETWEEN BOXES: {distances}")
return
if __name__ == "__main__":
if "-d" in argv or "--debug" in argv:
basicConfig(filename="debug.log", level=DEBUG)
main()
exit(0)