Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # aoc202201.py
- import pathlib
- import sys
- def parse(puzzle_input: str) -> list[list[int]]:
- """ Parse input """
- return [[int(cal) for cal in elf.split('\n')]
- for elf in puzzle_input.split('\n\n')]
- def part1(data: list[list[int]]) -> int:
- """ Solve part 1 """
- return max((sum(nums) for nums in data))
- def part2(data: list[list[int]]) -> int:
- """ Solve part 2 """
- return sum(sorted((sum(nums) for nums in data))[-3:])
- def solve(puzzle_input: str) -> tuple[int, int]:
- """ Solve the puzzle for the given input """
- data: list[list[int]] = parse(puzzle_input)
- solution1: int = part1(data) # Correct answer was 66487 (with my data)
- solution2: int = part2(data) # Correct answer was 197301 (with my data)
- return solution1, solution2
- if __name__ == "__main__":
- for path in sys.argv[1:]:
- print(f"{path}:")
- puzzle_input = pathlib.Path(path).read_text().strip()
- solutions = solve(puzzle_input)
- print('\n'.join(str(solution) for solution in solutions))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement