feat: add solution 2019/01
This commit is contained in:
0
src/solution/year_2019/__init__.py
Normal file
0
src/solution/year_2019/__init__.py
Normal file
38
src/solution/year_2019/day_01.py
Normal file
38
src/solution/year_2019/day_01.py
Normal file
@@ -0,0 +1,38 @@
|
||||
from typing import Any
|
||||
|
||||
|
||||
def fuel_req(mass: int) -> int:
|
||||
return max(mass // 3 - 2, 0)
|
||||
|
||||
|
||||
def rec_fuel_req(mass: int) -> int:
|
||||
fuel = fuel_req(mass)
|
||||
|
||||
if fuel == 0:
|
||||
return 0
|
||||
|
||||
return fuel + rec_fuel_req(fuel)
|
||||
|
||||
|
||||
def part_1_2(input_data: str) -> Any:
|
||||
req1, req2 = 0, 0
|
||||
|
||||
for line in input_data.splitlines():
|
||||
mass = int(line)
|
||||
req1 += fuel_req(mass)
|
||||
req2 += rec_fuel_req(mass)
|
||||
|
||||
return req1, req2
|
||||
|
||||
|
||||
def test_fuel_req() -> None:
|
||||
assert fuel_req(12) == 2
|
||||
assert fuel_req(14) == 2
|
||||
assert fuel_req(1969) == 654
|
||||
assert fuel_req(100756) == 33583
|
||||
|
||||
|
||||
def test_rec_fuel_req() -> None:
|
||||
assert rec_fuel_req(14) == 2
|
||||
assert rec_fuel_req(1969) == 966
|
||||
assert rec_fuel_req(100756) == 50346
|
||||
Reference in New Issue
Block a user