Files
AdventOfCode2025/Problem6_2.py
2025-12-06 11:54:15 -05:00

72 lines
1.5 KiB
Python

def printList(numbersList: list[list[int]], symbolsList: list[str]) :
for line in numbersList :
print(f"{line}")
print(f"{symbolsList}")
def parseInput() :
numbers: list[list[int]] = [[]]
for colNum in range(len(rawInput[0])) :
numStr = ""
for rowNum in range(len(rawInput) - 1) :
char = rawInput[rowNum][colNum]
if char != " " :
numStr += char
if len(numStr) > 0 :
numbers[-1].append(int(numStr))
elif len(numbers[-1]) > 0:
numbers.append([])
if len(numbers[-1]) == 0 :
numbers.pop()
symbols: list[str] = []
for sym in rawInput[-1].split(" ") :
if len(sym.replace(" ", "")) == 0:
continue
symbols.append(sym.replace(" ", ""))
return numbers, symbols
def getValue(col: list[int], symbol: str) :
if symbol == "+" :
value = sum(col)
else :
value = prod(col)
print(f"list = {col}, sym = {symbol}, Value = {value}")
return value
def prod(list: list[int]) :
if len(list) == 0 :
return 0
value = 1
for val in list :
value *= val
return value
testInput = [
"123 328 51 64 ",
" 45 64 387 23 ",
" 6 98 215 314",
"* + * + "
]
def readFile() :
ary = []
with open("files/Problem6.txt", "r") as file :
for line in file :
ary.append(line.replace("\n", ""))
return ary
#rawInput = testInput
rawInput = readFile()
numbers, symbols = parseInput()
#printList(numbers, symbols)
values: list[int] = []
for colNum in range(len(numbers)) :
value = getValue(numbers[colNum], symbols[colNum])
values.append(value)
print(f"Sum = {sum(values)}")
#Sum = 9770311947567