#!/usr/bin/env python # coding: utf-8 # In[34]: import statistics, math def fuel(positions, rendezvous, consumption): return sum(map(lambda x: consumption(abs(x-rendezvous)), positions)) def least_fuel(positions, rendezvous, consumption): r = math.floor(rendezvous(positions)) return fuel(positions, r, consumption) # In[35]: import import_ipynb import helper f = helper.read_file('2021_7.txt') positions = list(map(int, f.rstrip().split(','))) least_fuel(positions, statistics.median, consumption=lambda x: x) # In[36]: least_fuel(positions, statistics.mean, consumption=lambda x: x*(x+1)/2)