diff options
Diffstat (limited to '2.py')
-rw-r--r-- | 2.py | 28 |
1 files changed, 28 insertions, 0 deletions
@@ -0,0 +1,28 @@ +Command = tuple[str, int] + +def part1(commands: list[Command]) -> int: + pos: int = 0 + depth: int = 0 + for command in commands: + match command: + case ('up', X): depth -= X + case ('down', X): depth += X + case ('forward', X): pos += X + return pos * depth + +def part2(commands: list[Command]) -> int: + pos: int = 0 + aim: int = 0 + depth: int = 0 + for command in commands: + match command: + case ('up', X): aim -= X + case ('down', X): aim += X + case ('forward', X): + pos += X + depth += aim * X + return pos * depth + +commands: list[Command] = [(c, int(q)) for c, q in (l.split() for l in open('2.in'))] +print(part1(commands)) +print(part2(commands)) |