2023-03-04 15:34:36 +01:00
|
|
|
#!/usr/bin/env python3
|
|
|
|
|
|
|
|
def naive_fuel(mass : int) -> int:
|
|
|
|
return mass // 3 - 2
|
|
|
|
|
|
|
|
def calc_fuel(mass : int) -> int:
|
|
|
|
fuel_mass = naive_fuel(mass)
|
|
|
|
if fuel_mass < 0:
|
|
|
|
return 0
|
|
|
|
return fuel_mass + calc_fuel(fuel_mass)
|
|
|
|
|
|
|
|
def preproc(puzzle_input : str):
|
|
|
|
return list(map(int, puzzle_input.split()))
|
|
|
|
|
|
|
|
def partI(modules):
|
|
|
|
return sum(map(naive_fuel, modules))
|
|
|
|
|
|
|
|
def partII(modules):
|
|
|
|
return sum(map(calc_fuel, modules))
|
|
|
|
|
2023-03-14 00:13:50 +01:00
|
|
|
from main import Tests
|
|
|
|
tests = Tests()
|
2023-03-04 15:34:36 +01:00
|
|
|
tests.add(1969, partI=654, partII=966)
|
|
|
|
tests.add(100756, partI=33583, partII=50346)
|