Skip to content

Commit 5e0791f

Browse files
committed
day 02
1 parent 8e2f867 commit 5e0791f

File tree

2 files changed

+15
-2
lines changed

2 files changed

+15
-2
lines changed

day01.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
lists = [tuple(map(int, line.split(" "))) for line in open("inputs/day01.txt").read().split("\n")]
2-
lists = [sorted(pair[i] for pair in lists) for i in range(2)]
3-
print(f"part 1 = {sum(abs(x - y) for x, y in zip(lists[0], lists[1]))}")
2+
lists = [sorted(li) for li in zip(*lists)]
3+
print(f"part 1 = {sum(abs(x - y) for x, y in zip(*lists))}")
44
print(f"part 2 = {sum(sum(1 for x in lists[1] if x == value) * value for value in lists[0])}")

day02.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
def is_valid(values):
2+
prev = values[0]
3+
asc = values[1] > values[0]
4+
for v in values[1:]:
5+
if asc != (v > prev) or not (1 <= abs(v - prev) <= 3):
6+
return False
7+
prev = v
8+
return True
9+
10+
reports = [[int(n) for n in line.split(" ")] for line in open("inputs/day02.txt").read().split("\n")]
11+
print(f"part 1 = {sum(is_valid(r) for r in reports)}")
12+
# Brute force: Just try out removing each element until we find a valid combination.
13+
print(f"part 2 = {sum(any(is_valid(r[:i] + r[i+1:]) for i in range(len(r))) for r in reports)}")

0 commit comments

Comments
 (0)