From 000000200cec3ac8782e205ef2556e9e39151753 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Matej=20Jane=C5=BEi=C4=8D?= Date: Mon, 1 Dec 2025 22:39:29 +0100 Subject: [PATCH] feat: add solution 2019/01 --- src/solution/year_2019/__init__.py | 0 src/solution/year_2019/day_01.py | 38 ++++++++++++++++++++++++++++++ 2 files changed, 38 insertions(+) create mode 100644 src/solution/year_2019/__init__.py create mode 100644 src/solution/year_2019/day_01.py diff --git a/src/solution/year_2019/__init__.py b/src/solution/year_2019/__init__.py new file mode 100644 index 000000000..e69de29 diff --git a/src/solution/year_2019/day_01.py b/src/solution/year_2019/day_01.py new file mode 100644 index 000000000..195178a --- /dev/null +++ b/src/solution/year_2019/day_01.py @@ -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