Day 3: Part 2

This commit is contained in:
2025-12-03 18:07:58 +01:00
parent 4d1c9c10ed
commit 71217a3d4c

44
main.py
View File

@@ -1,28 +1,30 @@
batteries = []
with open("day3/input.txt") as file:
lines = file.readlines()
for line in lines:
line = line.strip("\n")
data = []
for joltage in line:
data.append(int(joltage))
batteries.append(data)
for line in file:
batteries.append([int(c) for c in line.strip()])
joltageSum = 0
def max_12_digit_number(digits):
target_len = 12
to_remove = len(digits) - target_len
stack = []
for d in digits:
while stack and to_remove > 0 and stack[-1] < d:
stack.pop()
to_remove -= 1
stack.append(d)
# Falls noch nicht genug entfernt wurde (am Ende nur große Zahlen)
return stack[:target_len]
total = 0
for bank in batteries:
tenthPlace = max(bank)
onethPlace = 0
indexOfMax = bank.index(tenthPlace)
if(indexOfMax == len(bank)-1):
onethPlace = tenthPlace
tenthPlace = max(bank[:-1])
else:
onethPlace = max(bank[indexOfMax+1::])
joltageBank = int(f"{tenthPlace}{onethPlace}")
print(f"Bank {batteries.index(bank)+1} joltage is {joltageBank}")
joltageSum+=joltageBank
best_digits = max_12_digit_number(bank)
joltage = int("".join(map(str, best_digits)))
total += joltage
print(joltageSum)
print(total)