-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathday1.py
More file actions
31 lines (25 loc) · 689 Bytes
/
day1.py
File metadata and controls
31 lines (25 loc) · 689 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
from more_itertools import *
SAMPLE = """3 4
4 3
2 5
1 3
3 9
3 3"""
def parse(input):
lines = input.splitlines()
pairs = ([int(x) for x in line.split()] for line in lines)
left, right = (sorted(l) for l in unzip(pairs))
return left, right
def part1(input):
left, right = parse(input)
distances = [ abs(a - b) for a, b in zip(left, right) ]
return sum(distances)
def part2(input):
left, right = parse(input)
scores = [ a * right.count(a) for a in left ]
return sum(scores)
INPUT = open("day1.txt", "r").read()
print("part1:", part1(SAMPLE))
print("part1:", part1(INPUT))
print("part2:", part2(SAMPLE))
print("part2:", part2(INPUT))