add: days06: part2
This commit is contained in:
31
2025/day06/part2.py
Normal file
31
2025/day06/part2.py
Normal file
@ -0,0 +1,31 @@
|
||||
import math
|
||||
|
||||
text: str
|
||||
|
||||
with open("input.txt") as f:
|
||||
text = f.read()
|
||||
|
||||
total: int = 0
|
||||
|
||||
def calc(lines: list[str], start: int, stop: int) -> int:
|
||||
numbers: list[int] = []
|
||||
for i in range(start, stop):
|
||||
number: int = 0
|
||||
for line in lines[:-1]:
|
||||
if (line[i] != ' '):
|
||||
number = number * 10 + int(line[i])
|
||||
numbers.append(number)
|
||||
operator = lines[-1][start]
|
||||
if (operator == "+"):
|
||||
return sum(numbers)
|
||||
return math.prod(numbers)
|
||||
|
||||
lines: list[str] = text.splitlines()
|
||||
prev = len(lines[-1])
|
||||
for i in range(len(lines[-1]) - 1, -1, -1):
|
||||
operator: str = lines[-1][i]
|
||||
if (operator in "+*"):
|
||||
total += calc(lines, i, prev)
|
||||
prev = i - 1
|
||||
|
||||
print(total)
|
||||
Reference in New Issue
Block a user