diff options
Diffstat (limited to '2024/01/solve.py')
-rwxr-xr-x | 2024/01/solve.py | 21 |
1 files changed, 8 insertions, 13 deletions
diff --git a/2024/01/solve.py b/2024/01/solve.py index e0c8ab0..a624499 100755 --- a/2024/01/solve.py +++ b/2024/01/solve.py @@ -1,22 +1,18 @@ #!/bin/env python -# L = open("input").readlines() +from collections import Counter + L = [ [int(i) for i in l.strip().split(" ")] for l in open("input").readlines() ] -# L = [int(l.strip()) for l in open("input").readlines()] def part1(): res = 0 - left = [l[0] for l in L] - right = [l[1] for l in L] - while left: - left_min = min(range(len(left)), key=left.__getitem__) - right_min = min(range(len(right)), key=right.__getitem__) - res += abs(left[left_min] - right[right_min]) - del left[left_min] - del right[right_min] + left = sorted(l[0] for l in L) + right = sorted(l[1] for l in L) + for i in range(len(left)): + res += abs(left[i] - right[i]) print(res) @@ -24,9 +20,8 @@ def part2(): res = 0 left = [l[0] for l in L] right = [l[1] for l in L] - for i, l in enumerate(left): - res += l * right.count(l) - print(res) + c = Counter(right) + print(sum(l * c[l] for l in left)) part1() |