from typing import Iterator, List from aoc import AssignmentBase class Assignment(AssignmentBase): def parse_item(self, item: str) -> int: return int(item) def read_input(self, example = False) -> List[int]: return sorted(super().read_input(example)) class AssignmentOne(Assignment): def run(self, input: List) -> int: front_position = 0 end_position = -1 while True: sum = input[front_position] + input[end_position] if sum > 2020: end_position -= 1 elif sum < 2020: front_position += 1 else: break return input[front_position] * input[end_position] class AssignmentTwo(Assignment): def run(self, input: List) -> int: for a in input: for b in input: for c in input: if a + b + c == 2020: return a * b * c