Add day 7 (part 2 is slow but idc, use pypy)
Signed-off-by: Alek Ratzloff <alekratz@gmail.com>
This commit is contained in:
30
day07/day07.py
Executable file
30
day07/day07.py
Executable file
@@ -0,0 +1,30 @@
|
||||
#!/usr/bin/env python3
|
||||
import sys
|
||||
from typing import Sequence
|
||||
|
||||
|
||||
def part1(positions: Sequence[int]):
|
||||
lo = min(positions)
|
||||
hi = max(positions)
|
||||
diffs = []
|
||||
for i in range(lo, hi + 1):
|
||||
diffs += [sum(abs(pos - i) for pos in positions)]
|
||||
print(min(diffs))
|
||||
|
||||
|
||||
def part2(positions: Sequence[int]):
|
||||
lo = min(positions)
|
||||
hi = max(positions)
|
||||
diffs = []
|
||||
for i in range(lo, hi + 1):
|
||||
diffs += [sum(sum(range(abs(pos - i) + 1)) for pos in positions)]
|
||||
|
||||
print(min(diffs))
|
||||
|
||||
|
||||
positions = list(map(int, sys.stdin.readline().strip().split(",")))
|
||||
|
||||
print("Part 1")
|
||||
part1(positions)
|
||||
print("Part 2")
|
||||
part2(positions)
|
||||
Reference in New Issue
Block a user