Files
advent-of-code/2025/day-06/part-one.py
2025-12-09 17:10:01 +01:00

72 lines
1.9 KiB
Python

import logging
import sys
# Logger setup
logger = logging.getLogger(__name__)
logger.setLevel(logging.INFO)
stream_handler = logging.StreamHandler()
logger.addHandler(stream_handler)
class Problem:
def __init__(self, operation, numbers):
self._operation = operation
self._numbers = numbers
@property
def operation(self):
"""The operation property."""
return self._operation
@operation.setter
def operation(self, value):
self._operation = value
@property
def numbers(self):
"""The numbers property."""
return self._numbers
@numbers.setter
def numbers(self, value):
self._numbers = value
def result(self):
result = 0
match self._operation:
case "*":
result = self._numbers[0]
for i in range(1, len(self._numbers)):
result = result * self._numbers[i]
case "+":
result = self._numbers[0]
for i in range(1, len(self._numbers)):
result = result + self._numbers[i]
case _:
logger.error("Undefined operator")
return result
def main():
output = 0
operations = []
number_lines = []
problems = []
with open("input.txt", "r") as input:
lines = input.readlines()
operations = lines[-1].strip().split()
for line in lines[:len(lines) - 1]:
number_lines.append(line.strip().split())
for i in range(len(number_lines[0])):
column = []
for j in range(len(number_lines)):
column.append(int(number_lines[j][i]))
problems.append(Problem(operations[i], column))
for problem in problems:
output += problem.result()
logger.info("Output: " + str(output))
if __name__ == "__main__":
main()