#!/bin/env python3 def turn_on_batteries(series: str, amount: int) -> list: batteries = list(series.strip()) batteries.sort(reverse=True) highest = batteries[0] if series.strip().__len__() == series.strip().index(highest) + 1: highest = batteries[1] highest_at = series.strip().index(highest) for battery in batteries: occurances = [ i for i, x in enumerate(series.strip()) if x == battery and i > highest_at ] # print(battery, occurances) if occurances.__len__() == 0: continue second_highest = battery break return [highest, second_highest] 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_batteries2(line, 12) print("result:", line.strip(), "".join(batteries)) result = result + int("".join(batteries)) print("result:", result)