46 lines
748 B
Python
46 lines
748 B
Python
with open('input.text', 'r') as file:
|
|
data: list[str] = file.readlines()
|
|
|
|
# Parse Input
|
|
|
|
left = []
|
|
right = []
|
|
|
|
for line in data:
|
|
nums = line.split()
|
|
|
|
left.append(int(nums[0]))
|
|
right.append(int(nums[1]))
|
|
|
|
# Part 1
|
|
|
|
lc = left.copy()
|
|
rc = right.copy()
|
|
|
|
total = 0
|
|
while min(lc) != float('inf'):
|
|
lowest_left = min(lc)
|
|
lowest_right = min(rc)
|
|
|
|
total += abs(lowest_left - lowest_right)
|
|
|
|
lc[lc.index(lowest_left)] = float('inf')
|
|
rc[rc.index(lowest_right)] = float('inf')
|
|
|
|
print(f'Part 1: {total}')
|
|
|
|
# Part 2
|
|
|
|
lc = left.copy()
|
|
rc = right.copy()
|
|
|
|
total = 0
|
|
for i in range(0, len(lc)):
|
|
lowest_left = min(lc)
|
|
|
|
total += lowest_left * rc.count(lowest_left)
|
|
|
|
lc.pop(lc.index(lowest_left))
|
|
|
|
print(f'Part 2: {total}')
|