44 lines
872 B
Python
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()
|