advent-of-code/2017-python/solutions/day_02.py

35 lines
998 B
Python
Raw Normal View History

2021-11-01 16:40:46 +01:00
from solutions import BaseSolution
class Solution(BaseSolution):
2025-05-06 20:14:58 +02:00
input_file = "02.txt"
2021-11-01 16:40:46 +01:00
def __str__(self):
2025-05-06 20:14:58 +02:00
return "Day 2: Corruption Checksum"
2021-11-01 16:40:46 +01:00
def _get_rows(self, puzzle_input):
return [list(map(int, rows.split())) for rows in puzzle_input.splitlines()]
def get_even_divisible(self, columns):
l = len(columns)
for col in range(l):
for i in range(l):
if not col == i and columns[col] % columns[i] == 0:
return columns[col] // columns[i]
def get_diff(self, columns):
return max(columns) - min(columns)
def solve(self, puzzle_input):
rows = self._get_rows(puzzle_input)
return sum(self.get_diff(columns) for columns in rows)
def solve_again(self, puzzle_input):
rows = self._get_rows(puzzle_input)
return sum(self.get_even_divisible(columns) for columns in rows)
2025-05-06 20:14:58 +02:00
if __name__ == "__main__":
2021-11-01 16:40:46 +01:00
solution = Solution()
solution.show_results()