diff --git a/2025/03/example2 b/2025/03/example2 new file mode 100644 index 0000000..ce3e9ef --- /dev/null +++ b/2025/03/example2 @@ -0,0 +1 @@ +234234234234278 \ No newline at end of file diff --git a/2025/03/main.py b/2025/03/main.py index f966302..5c15f80 100644 --- a/2025/03/main.py +++ b/2025/03/main.py @@ -1,6 +1,4 @@ #!/bin/env python3 - - def turn_on_batteries(series: str, amount: int) -> list: batteries = list(series.strip()) batteries.sort(reverse=True) @@ -22,11 +20,30 @@ def turn_on_batteries(series: str, amount: int) -> list: return [highest, second_highest] -with open("example", "+r") as file: +def turn_on_batteries2(series: str, amount: int) -> list: + + length = series.strip().__len__() + + remaining = length - amount + new_stack: list = [] + + for battery in series.strip(): + while remaining > 0 and new_stack and new_stack[-1] < battery: + new_stack.pop() + remaining -= 1 + new_stack.append(battery) + + if remaining > 0: + new_stack = new_stack[:-remaining] + + return new_stack + + +with open("input", "+r") as file: result = 0 for line in file.readlines(): - batteries = turn_on_batteries(line, 2) - print(line.strip(), batteries) + batteries = turn_on_batteries2(line, 12) + print("result:", line.strip(), "".join(batteries)) result = result + int("".join(batteries)) print("result:", result)