Files
AdventOfCode2025/06/06-2.py
2025-12-06 16:24:45 +01:00

71 lines
1.6 KiB
Python

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# file = "./ex.txt"
file = "./input.txt"
def max_length(li:list[str]) -> int:
res = 0
for l in li:
if len(l) > res:
res = len(l)
return res
def expand_lines(li:list[str], nl:int) -> list[str]:
res = []
for l in li:
while len(l) < nl:
l += "x"
res.append(l)
return res
def get_numbers(li:list[str]) -> list[int]:
res = []
part = []
num = ""
for pos in range(len(li[0])):
for l in li:
if l[pos] != "x":
num += l[pos]
if num != "":
part.append(int(num))
num = ""
else:
res.append(part)
part = []
res.append(part)
return res
if __name__ == "__main__":
solution = 0
lines = []
operator_list = []
input_file = open(file, "r")
for line in input_file:
line = line.replace(" ","x")
line = line.strip()
if line == "":
continue
elif "*" in line or "+" in line:
operator_list = line.replace("x"," ").split()
else:
lines.append(line)
lines = expand_lines(lines, max_length(lines))
num_list = get_numbers(lines)
for i in range(len(operator_list)):
if operator_list[i] == "+":
op_result = 0
for n in num_list[i]:
op_result += n
elif operator_list[i] == "*":
op_result = 1
for n in num_list[i]:
op_result *= n
else:
op_result = None
solution += op_result
print(f"Solution: {solution}")