25 lines
567 B
Python
25 lines
567 B
Python
#!/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))
|
|
|
|
from main import Tests
|
|
tests = Tests()
|
|
tests.add(1969, partI=654, partII=966)
|
|
tests.add(100756, partI=33583, partII=50346)
|