advent-of-code-2024/day-1/main.py

44 lines
872 B
Python

def parse_input() -> tuple[list[int], list[int]]:
raw_input = open("input.txt").read()
line1 = []
line2 = []
for raw_line in raw_input.splitlines():
num1, num2 = raw_line.split()
line1.append(int(num1))
line2.append(int(num2))
return line1, line2
def part_1():
line1, line2 = parse_input()
line1.sort()
line2.sort()
distances = [abs(num1 - num2) for num1, num2 in zip(line1, line2)]
result = sum(distances)
print(result)
def part_2():
line1, line2 = parse_input()
appears = {}
for line in line2:
appears[line] = appears.get(line, 0) + 1
result = sum(appears.get(num, 0) * num for num in line1)
print(result)
def main() -> int:
print("Part 1: ", end="")
part_1()
print("Part 2: ", end="")
part_2()
return 0
if __name__ == "__main__":
main()