Files
advent-of-code-2021/day-07/day-07.py
Pascal Lais 113049625c
All checks were successful
continuous-integration/drone/push Build is passing
Add day 7 solution
2021-12-07 09:40:09 +01:00

44 lines
956 B
Python

#!/usr/bin/env python3
from pathlib import Path
def calc_fuel(crabs, h):
fuel = 0
for c in crabs:
fuel += abs(h - c)
return fuel
def calc_fuel_exp(crabs, h):
fuel = 0
for c in crabs:
d = abs(h - c)
fuel += d * (d + 1) // 2
return fuel
def part_1(input):
result = 0
c_pos = [int(x) for x in input[0].split(',')]
result = calc_fuel(c_pos, c_pos[0])
for i in range(min(c_pos), max(c_pos) + 1):
result = min(result, calc_fuel(c_pos, i))
print("Part 1 result:", result)
def part_2(input):
result = 0
c_pos = [int(x) for x in input[0].split(',')]
result = calc_fuel_exp(c_pos, c_pos[0])
for i in range(min(c_pos), max(c_pos) + 1):
result = min(result, calc_fuel_exp(c_pos, i))
print("Part 2 result:", result)
input = list()
p = Path(__file__).with_name('input.txt')
with open(p) as f:
input = f.readlines()
part_1(input)
part_2(input)