From 9d9dec071540e2c64b5c74792d5a49e1c6d0744a Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Thu, 2 Dec 2021 10:10:18 +0100 Subject: [PATCH 1/4] 2020: d02: ex1: add input --- 2021/d02/ex1/input | 1000 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 1000 insertions(+) create mode 100644 2021/d02/ex1/input diff --git a/2021/d02/ex1/input b/2021/d02/ex1/input new file mode 100644 index 0000000..2652d35 --- /dev/null +++ b/2021/d02/ex1/input @@ -0,0 +1,1000 @@ +forward 9 +forward 7 +forward 4 +down 7 +forward 5 +down 4 +down 2 +forward 1 +down 6 +forward 5 +forward 5 +forward 8 +forward 3 +forward 6 +down 2 +up 3 +forward 1 +up 4 +forward 1 +forward 6 +up 2 +forward 7 +up 2 +up 3 +down 9 +up 5 +down 5 +up 7 +down 5 +forward 4 +forward 1 +forward 8 +forward 9 +forward 3 +forward 9 +down 1 +down 1 +down 1 +forward 6 +up 8 +down 2 +forward 3 +down 9 +forward 7 +down 5 +up 7 +down 3 +forward 5 +forward 9 +down 9 +up 3 +forward 4 +forward 8 +up 2 +forward 4 +forward 2 +forward 2 +forward 8 +up 7 +up 4 +down 3 +forward 2 +down 9 +up 1 +forward 2 +down 3 +forward 2 +down 2 +up 6 +forward 6 +forward 2 +down 9 +forward 3 +forward 2 +down 1 +up 1 +down 1 +forward 5 +forward 4 +up 6 +forward 6 +forward 2 +up 9 +forward 9 +forward 5 +down 8 +up 9 +forward 2 +up 3 +forward 8 +forward 2 +down 4 +down 1 +up 9 +up 8 +forward 3 +forward 9 +down 9 +down 6 +forward 1 +forward 5 +up 9 +down 7 +up 9 +down 8 +down 2 +down 2 +up 9 +forward 7 +down 4 +down 7 +down 8 +down 9 +down 9 +forward 9 +down 9 +forward 2 +down 6 +forward 8 +forward 1 +down 6 +down 8 +forward 5 +forward 3 +forward 5 +down 5 +forward 6 +forward 3 +forward 4 +forward 3 +down 2 +down 9 +down 8 +down 9 +up 7 +up 9 +up 1 +down 6 +down 4 +forward 8 +forward 5 +forward 8 +down 5 +forward 7 +down 9 +forward 9 +forward 1 +up 4 +down 4 +forward 7 +forward 4 +up 9 +forward 6 +down 8 +down 5 +forward 8 +down 6 +down 3 +down 7 +forward 4 +down 8 +down 1 +up 6 +down 4 +down 9 +down 6 +forward 7 +down 8 +forward 5 +forward 8 +down 7 +down 5 +forward 1 +up 1 +down 1 +down 6 +forward 5 +forward 6 +down 1 +up 6 +forward 4 +forward 6 +down 4 +forward 3 +up 6 +forward 2 +forward 9 +down 8 +forward 8 +up 9 +forward 3 +forward 4 +forward 1 +down 4 +down 5 +forward 4 +down 6 +forward 7 +down 7 +down 8 +up 8 +up 5 +down 8 +down 5 +forward 8 +forward 2 +forward 6 +up 5 +forward 4 +forward 2 +forward 1 +up 7 +forward 1 +forward 6 +down 8 +down 5 +down 4 +forward 2 +up 8 +forward 4 +up 8 +forward 7 +forward 5 +down 4 +up 7 +down 5 +down 3 +forward 2 +down 2 +down 2 +forward 5 +forward 2 +down 2 +forward 5 +down 8 +forward 7 +up 8 +down 6 +up 5 +forward 6 +up 9 +down 2 +down 3 +up 1 +up 8 +forward 9 +forward 7 +forward 9 +forward 3 +down 2 +up 2 +down 2 +down 8 +up 8 +up 6 +forward 6 +down 9 +down 9 +up 4 +down 3 +forward 6 +forward 9 +down 6 +forward 7 +forward 4 +forward 4 +down 9 +down 3 +forward 1 +down 7 +forward 2 +forward 3 +forward 9 +forward 5 +forward 2 +forward 4 +forward 8 +up 1 +forward 5 +down 4 +down 2 +down 7 +forward 1 +up 1 +up 8 +up 6 +down 1 +forward 1 +forward 9 +forward 8 +down 7 +forward 6 +forward 8 +down 7 +forward 5 +down 5 +down 8 +down 8 +forward 8 +up 1 +down 7 +down 4 +up 4 +forward 5 +up 7 +forward 3 +forward 2 +down 1 +forward 3 +down 5 +forward 4 +down 4 +forward 6 +up 9 +forward 3 +down 7 +forward 7 +forward 9 +forward 9 +forward 4 +up 9 +up 5 +down 6 +down 6 +forward 8 +up 6 +down 2 +up 5 +forward 7 +forward 4 +down 6 +down 4 +down 9 +down 4 +up 2 +down 3 +down 7 +forward 1 +forward 4 +down 6 +forward 3 +forward 2 +forward 4 +down 9 +forward 8 +down 3 +up 4 +down 5 +forward 2 +down 6 +forward 8 +down 8 +down 7 +down 4 +forward 1 +down 3 +forward 9 +down 2 +down 9 +down 2 +forward 1 +down 3 +down 2 +down 2 +up 4 +down 8 +forward 6 +forward 4 +forward 4 +up 9 +forward 3 +forward 1 +forward 1 +up 3 +forward 9 +down 2 +forward 5 +down 9 +down 2 +forward 1 +forward 9 +down 3 +forward 3 +up 3 +forward 7 +down 6 +up 8 +down 2 +down 5 +forward 7 +down 8 +up 5 +down 4 +up 5 +forward 6 +forward 3 +down 2 +forward 4 +forward 3 +down 8 +forward 5 +forward 5 +down 5 +forward 1 +forward 8 +up 1 +down 7 +forward 6 +forward 3 +forward 8 +down 9 +down 7 +forward 1 +down 2 +down 6 +down 3 +forward 8 +down 7 +forward 2 +forward 1 +forward 5 +down 9 +forward 2 +forward 2 +up 4 +down 9 +down 4 +forward 7 +down 7 +up 8 +forward 6 +down 9 +down 8 +up 5 +down 8 +down 6 +forward 9 +up 5 +up 7 +down 3 +up 2 +down 4 +up 8 +up 3 +down 7 +forward 9 +forward 7 +down 7 +forward 5 +up 8 +forward 1 +down 2 +forward 8 +down 3 +up 5 +down 9 +forward 8 +down 7 +down 3 +down 3 +down 2 +forward 6 +up 5 +forward 4 +down 4 +down 3 +down 5 +forward 8 +down 3 +forward 7 +forward 2 +down 8 +down 6 +down 9 +down 3 +down 6 +down 7 +down 8 +up 6 +down 7 +forward 8 +down 9 +forward 1 +down 6 +forward 8 +down 5 +forward 3 +up 8 +forward 1 +down 6 +forward 4 +forward 5 +forward 8 +up 5 +forward 4 +down 2 +down 9 +up 2 +forward 1 +up 8 +forward 6 +up 4 +up 6 +forward 4 +up 5 +forward 6 +forward 1 +down 3 +down 6 +up 2 +forward 4 +up 2 +forward 4 +forward 6 +down 2 +down 4 +up 5 +down 9 +up 2 +down 4 +up 6 +forward 3 +down 6 +down 2 +up 8 +down 3 +down 1 +forward 6 +forward 5 +forward 8 +down 4 +down 6 +down 2 +forward 3 +down 3 +up 8 +down 4 +forward 5 +down 6 +down 3 +up 2 +forward 5 +forward 2 +down 6 +down 8 +forward 1 +forward 5 +forward 7 +forward 3 +forward 6 +down 9 +forward 7 +forward 4 +down 6 +down 2 +up 8 +down 3 +down 7 +down 7 +down 9 +down 8 +down 6 +down 6 +up 1 +up 6 +forward 4 +down 8 +up 7 +down 8 +forward 9 +down 9 +up 9 +forward 4 +forward 1 +down 3 +down 8 +forward 9 +down 9 +forward 3 +down 2 +forward 9 +down 2 +forward 8 +down 7 +down 2 +forward 4 +forward 3 +forward 3 +down 8 +up 3 +forward 9 +down 1 +down 6 +up 3 +down 6 +up 7 +forward 9 +up 9 +down 5 +forward 6 +up 1 +up 6 +down 4 +forward 9 +forward 6 +forward 9 +down 4 +up 9 +up 4 +forward 2 +forward 2 +forward 4 +up 6 +down 1 +down 4 +forward 9 +down 9 +forward 3 +up 9 +down 4 +forward 4 +down 1 +forward 8 +forward 2 +down 1 +down 7 +down 8 +forward 1 +up 7 +up 7 +forward 1 +down 3 +up 5 +down 4 +forward 2 +down 5 +up 1 +down 4 +forward 7 +down 2 +down 5 +down 4 +forward 7 +forward 6 +up 9 +forward 6 +forward 1 +forward 7 +forward 5 +up 6 +down 8 +forward 8 +down 9 +down 8 +forward 8 +down 2 +down 5 +forward 8 +forward 9 +down 6 +down 3 +down 3 +up 9 +down 6 +forward 6 +up 2 +forward 9 +forward 7 +forward 6 +forward 4 +forward 1 +down 2 +forward 1 +forward 3 +forward 9 +down 9 +forward 7 +forward 3 +down 8 +up 7 +forward 1 +down 8 +up 5 +down 8 +up 3 +down 7 +forward 2 +down 7 +forward 2 +down 3 +forward 3 +forward 8 +down 4 +forward 6 +down 3 +up 9 +forward 9 +up 6 +up 4 +up 6 +down 1 +forward 3 +down 7 +down 9 +up 9 +down 2 +up 6 +forward 4 +down 4 +down 3 +down 2 +down 6 +forward 1 +forward 1 +up 3 +forward 5 +forward 8 +down 1 +up 4 +forward 3 +up 4 +down 5 +up 7 +down 5 +down 6 +forward 9 +forward 8 +forward 9 +down 6 +forward 5 +down 3 +up 5 +down 7 +down 5 +down 7 +up 9 +forward 3 +forward 4 +forward 1 +up 3 +forward 2 +down 4 +up 9 +down 7 +forward 6 +forward 5 +forward 3 +forward 3 +forward 9 +up 7 +down 9 +forward 4 +down 7 +forward 9 +forward 5 +down 8 +up 2 +forward 2 +down 4 +up 5 +up 4 +forward 5 +down 4 +down 9 +down 7 +down 2 +forward 1 +forward 1 +down 4 +down 8 +down 6 +forward 1 +up 6 +up 3 +up 5 +down 1 +down 5 +up 1 +up 5 +forward 2 +up 2 +down 3 +forward 7 +forward 2 +down 1 +down 9 +forward 1 +down 1 +forward 9 +up 9 +down 9 +forward 9 +down 4 +down 1 +up 5 +down 2 +forward 9 +down 2 +up 3 +up 6 +forward 1 +forward 8 +down 5 +down 8 +up 2 +down 2 +up 4 +down 2 +down 4 +forward 6 +up 4 +down 1 +forward 9 +forward 4 +down 9 +up 7 +forward 7 +down 3 +forward 2 +down 6 +up 6 +down 5 +down 7 +forward 4 +forward 1 +forward 7 +forward 4 +forward 4 +up 2 +down 2 +down 5 +forward 7 +down 6 +forward 8 +down 3 +down 9 +forward 7 +forward 1 +down 2 +up 7 +forward 4 +forward 2 +forward 6 +forward 5 +forward 9 +forward 9 +down 9 +down 9 +up 7 +forward 7 +forward 7 +forward 1 +forward 2 +down 1 +down 4 +forward 7 +forward 5 +down 1 +up 2 +forward 3 +forward 2 +forward 1 +forward 6 +down 4 +up 6 +forward 7 +down 1 +forward 4 +up 6 +down 7 +down 4 +forward 1 +down 8 +down 2 +down 1 +down 8 +forward 4 +up 8 +down 4 +up 9 +up 3 +forward 6 +up 9 +down 1 +forward 3 +up 3 +forward 5 +up 3 +down 6 +forward 9 +down 3 +down 3 +up 5 +forward 5 +forward 8 +forward 9 +down 6 +down 3 +forward 6 +up 4 +up 3 +forward 3 +forward 2 +down 2 +up 9 +forward 4 +forward 6 +forward 2 +up 9 +down 2 +forward 7 +down 7 +up 1 +forward 2 +forward 8 +down 2 +down 6 +down 1 +forward 3 +forward 5 +forward 6 +forward 3 +down 3 +down 7 +up 3 +forward 2 +forward 5 +down 9 +forward 3 +down 9 +up 6 +down 6 +forward 3 +down 5 +forward 1 +down 5 +up 3 +forward 8 +forward 8 +down 5 +down 6 +down 1 +forward 9 +forward 4 +forward 1 +forward 8 +down 8 +down 9 +forward 7 +forward 9 +down 2 +down 6 +down 8 +down 3 +forward 5 +forward 7 +forward 4 +down 9 +down 2 +forward 4 +forward 7 +down 2 +down 7 +forward 8 +down 8 +forward 4 +up 8 +forward 3 +forward 9 +forward 4 +down 9 +down 6 +up 1 +down 3 +down 7 +down 4 +forward 9 +forward 4 +up 9 +down 6 +forward 3 +up 1 +down 8 +down 5 +forward 9 +down 4 +down 2 +down 2 +down 5 +up 5 +down 5 +forward 5 +forward 2 +up 1 +forward 2 +up 2 +forward 8 +down 2 +down 7 +forward 1 From 4195a9e321ca2b91f7b8a6162215e31926fe34e0 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Thu, 2 Dec 2021 10:10:29 +0100 Subject: [PATCH 2/4] 2020: d02: ex1: add solution --- 2021/d02/ex1/ex1.py | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100755 2021/d02/ex1/ex1.py diff --git a/2021/d02/ex1/ex1.py b/2021/d02/ex1/ex1.py new file mode 100755 index 0000000..61c98d6 --- /dev/null +++ b/2021/d02/ex1/ex1.py @@ -0,0 +1,32 @@ +#!/usr/bin/env python + +import itertools +import sys +from typing import List + + +def solve(input: List[str]) -> int: + x, y = 0, 0 + + for instruction in input: + dir, length = instruction.split(" ") + length = int(length) + if dir == "forward": + x += length + elif dir == "down": + y += length + elif dir == "up": + y -= length + else: + assert False + + return x * y + + +def main() -> None: + input = [line.strip() for line in sys.stdin.readlines()] + print(solve(input)) + + +if __name__ == "__main__": + main() From a968844df2c7cfabd1353a6034c4babbdff2fc78 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Thu, 2 Dec 2021 10:10:35 +0100 Subject: [PATCH 3/4] 2020: d02: ex2: add input --- 2021/d02/ex2/input | 1000 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 1000 insertions(+) create mode 100644 2021/d02/ex2/input diff --git a/2021/d02/ex2/input b/2021/d02/ex2/input new file mode 100644 index 0000000..2652d35 --- /dev/null +++ b/2021/d02/ex2/input @@ -0,0 +1,1000 @@ +forward 9 +forward 7 +forward 4 +down 7 +forward 5 +down 4 +down 2 +forward 1 +down 6 +forward 5 +forward 5 +forward 8 +forward 3 +forward 6 +down 2 +up 3 +forward 1 +up 4 +forward 1 +forward 6 +up 2 +forward 7 +up 2 +up 3 +down 9 +up 5 +down 5 +up 7 +down 5 +forward 4 +forward 1 +forward 8 +forward 9 +forward 3 +forward 9 +down 1 +down 1 +down 1 +forward 6 +up 8 +down 2 +forward 3 +down 9 +forward 7 +down 5 +up 7 +down 3 +forward 5 +forward 9 +down 9 +up 3 +forward 4 +forward 8 +up 2 +forward 4 +forward 2 +forward 2 +forward 8 +up 7 +up 4 +down 3 +forward 2 +down 9 +up 1 +forward 2 +down 3 +forward 2 +down 2 +up 6 +forward 6 +forward 2 +down 9 +forward 3 +forward 2 +down 1 +up 1 +down 1 +forward 5 +forward 4 +up 6 +forward 6 +forward 2 +up 9 +forward 9 +forward 5 +down 8 +up 9 +forward 2 +up 3 +forward 8 +forward 2 +down 4 +down 1 +up 9 +up 8 +forward 3 +forward 9 +down 9 +down 6 +forward 1 +forward 5 +up 9 +down 7 +up 9 +down 8 +down 2 +down 2 +up 9 +forward 7 +down 4 +down 7 +down 8 +down 9 +down 9 +forward 9 +down 9 +forward 2 +down 6 +forward 8 +forward 1 +down 6 +down 8 +forward 5 +forward 3 +forward 5 +down 5 +forward 6 +forward 3 +forward 4 +forward 3 +down 2 +down 9 +down 8 +down 9 +up 7 +up 9 +up 1 +down 6 +down 4 +forward 8 +forward 5 +forward 8 +down 5 +forward 7 +down 9 +forward 9 +forward 1 +up 4 +down 4 +forward 7 +forward 4 +up 9 +forward 6 +down 8 +down 5 +forward 8 +down 6 +down 3 +down 7 +forward 4 +down 8 +down 1 +up 6 +down 4 +down 9 +down 6 +forward 7 +down 8 +forward 5 +forward 8 +down 7 +down 5 +forward 1 +up 1 +down 1 +down 6 +forward 5 +forward 6 +down 1 +up 6 +forward 4 +forward 6 +down 4 +forward 3 +up 6 +forward 2 +forward 9 +down 8 +forward 8 +up 9 +forward 3 +forward 4 +forward 1 +down 4 +down 5 +forward 4 +down 6 +forward 7 +down 7 +down 8 +up 8 +up 5 +down 8 +down 5 +forward 8 +forward 2 +forward 6 +up 5 +forward 4 +forward 2 +forward 1 +up 7 +forward 1 +forward 6 +down 8 +down 5 +down 4 +forward 2 +up 8 +forward 4 +up 8 +forward 7 +forward 5 +down 4 +up 7 +down 5 +down 3 +forward 2 +down 2 +down 2 +forward 5 +forward 2 +down 2 +forward 5 +down 8 +forward 7 +up 8 +down 6 +up 5 +forward 6 +up 9 +down 2 +down 3 +up 1 +up 8 +forward 9 +forward 7 +forward 9 +forward 3 +down 2 +up 2 +down 2 +down 8 +up 8 +up 6 +forward 6 +down 9 +down 9 +up 4 +down 3 +forward 6 +forward 9 +down 6 +forward 7 +forward 4 +forward 4 +down 9 +down 3 +forward 1 +down 7 +forward 2 +forward 3 +forward 9 +forward 5 +forward 2 +forward 4 +forward 8 +up 1 +forward 5 +down 4 +down 2 +down 7 +forward 1 +up 1 +up 8 +up 6 +down 1 +forward 1 +forward 9 +forward 8 +down 7 +forward 6 +forward 8 +down 7 +forward 5 +down 5 +down 8 +down 8 +forward 8 +up 1 +down 7 +down 4 +up 4 +forward 5 +up 7 +forward 3 +forward 2 +down 1 +forward 3 +down 5 +forward 4 +down 4 +forward 6 +up 9 +forward 3 +down 7 +forward 7 +forward 9 +forward 9 +forward 4 +up 9 +up 5 +down 6 +down 6 +forward 8 +up 6 +down 2 +up 5 +forward 7 +forward 4 +down 6 +down 4 +down 9 +down 4 +up 2 +down 3 +down 7 +forward 1 +forward 4 +down 6 +forward 3 +forward 2 +forward 4 +down 9 +forward 8 +down 3 +up 4 +down 5 +forward 2 +down 6 +forward 8 +down 8 +down 7 +down 4 +forward 1 +down 3 +forward 9 +down 2 +down 9 +down 2 +forward 1 +down 3 +down 2 +down 2 +up 4 +down 8 +forward 6 +forward 4 +forward 4 +up 9 +forward 3 +forward 1 +forward 1 +up 3 +forward 9 +down 2 +forward 5 +down 9 +down 2 +forward 1 +forward 9 +down 3 +forward 3 +up 3 +forward 7 +down 6 +up 8 +down 2 +down 5 +forward 7 +down 8 +up 5 +down 4 +up 5 +forward 6 +forward 3 +down 2 +forward 4 +forward 3 +down 8 +forward 5 +forward 5 +down 5 +forward 1 +forward 8 +up 1 +down 7 +forward 6 +forward 3 +forward 8 +down 9 +down 7 +forward 1 +down 2 +down 6 +down 3 +forward 8 +down 7 +forward 2 +forward 1 +forward 5 +down 9 +forward 2 +forward 2 +up 4 +down 9 +down 4 +forward 7 +down 7 +up 8 +forward 6 +down 9 +down 8 +up 5 +down 8 +down 6 +forward 9 +up 5 +up 7 +down 3 +up 2 +down 4 +up 8 +up 3 +down 7 +forward 9 +forward 7 +down 7 +forward 5 +up 8 +forward 1 +down 2 +forward 8 +down 3 +up 5 +down 9 +forward 8 +down 7 +down 3 +down 3 +down 2 +forward 6 +up 5 +forward 4 +down 4 +down 3 +down 5 +forward 8 +down 3 +forward 7 +forward 2 +down 8 +down 6 +down 9 +down 3 +down 6 +down 7 +down 8 +up 6 +down 7 +forward 8 +down 9 +forward 1 +down 6 +forward 8 +down 5 +forward 3 +up 8 +forward 1 +down 6 +forward 4 +forward 5 +forward 8 +up 5 +forward 4 +down 2 +down 9 +up 2 +forward 1 +up 8 +forward 6 +up 4 +up 6 +forward 4 +up 5 +forward 6 +forward 1 +down 3 +down 6 +up 2 +forward 4 +up 2 +forward 4 +forward 6 +down 2 +down 4 +up 5 +down 9 +up 2 +down 4 +up 6 +forward 3 +down 6 +down 2 +up 8 +down 3 +down 1 +forward 6 +forward 5 +forward 8 +down 4 +down 6 +down 2 +forward 3 +down 3 +up 8 +down 4 +forward 5 +down 6 +down 3 +up 2 +forward 5 +forward 2 +down 6 +down 8 +forward 1 +forward 5 +forward 7 +forward 3 +forward 6 +down 9 +forward 7 +forward 4 +down 6 +down 2 +up 8 +down 3 +down 7 +down 7 +down 9 +down 8 +down 6 +down 6 +up 1 +up 6 +forward 4 +down 8 +up 7 +down 8 +forward 9 +down 9 +up 9 +forward 4 +forward 1 +down 3 +down 8 +forward 9 +down 9 +forward 3 +down 2 +forward 9 +down 2 +forward 8 +down 7 +down 2 +forward 4 +forward 3 +forward 3 +down 8 +up 3 +forward 9 +down 1 +down 6 +up 3 +down 6 +up 7 +forward 9 +up 9 +down 5 +forward 6 +up 1 +up 6 +down 4 +forward 9 +forward 6 +forward 9 +down 4 +up 9 +up 4 +forward 2 +forward 2 +forward 4 +up 6 +down 1 +down 4 +forward 9 +down 9 +forward 3 +up 9 +down 4 +forward 4 +down 1 +forward 8 +forward 2 +down 1 +down 7 +down 8 +forward 1 +up 7 +up 7 +forward 1 +down 3 +up 5 +down 4 +forward 2 +down 5 +up 1 +down 4 +forward 7 +down 2 +down 5 +down 4 +forward 7 +forward 6 +up 9 +forward 6 +forward 1 +forward 7 +forward 5 +up 6 +down 8 +forward 8 +down 9 +down 8 +forward 8 +down 2 +down 5 +forward 8 +forward 9 +down 6 +down 3 +down 3 +up 9 +down 6 +forward 6 +up 2 +forward 9 +forward 7 +forward 6 +forward 4 +forward 1 +down 2 +forward 1 +forward 3 +forward 9 +down 9 +forward 7 +forward 3 +down 8 +up 7 +forward 1 +down 8 +up 5 +down 8 +up 3 +down 7 +forward 2 +down 7 +forward 2 +down 3 +forward 3 +forward 8 +down 4 +forward 6 +down 3 +up 9 +forward 9 +up 6 +up 4 +up 6 +down 1 +forward 3 +down 7 +down 9 +up 9 +down 2 +up 6 +forward 4 +down 4 +down 3 +down 2 +down 6 +forward 1 +forward 1 +up 3 +forward 5 +forward 8 +down 1 +up 4 +forward 3 +up 4 +down 5 +up 7 +down 5 +down 6 +forward 9 +forward 8 +forward 9 +down 6 +forward 5 +down 3 +up 5 +down 7 +down 5 +down 7 +up 9 +forward 3 +forward 4 +forward 1 +up 3 +forward 2 +down 4 +up 9 +down 7 +forward 6 +forward 5 +forward 3 +forward 3 +forward 9 +up 7 +down 9 +forward 4 +down 7 +forward 9 +forward 5 +down 8 +up 2 +forward 2 +down 4 +up 5 +up 4 +forward 5 +down 4 +down 9 +down 7 +down 2 +forward 1 +forward 1 +down 4 +down 8 +down 6 +forward 1 +up 6 +up 3 +up 5 +down 1 +down 5 +up 1 +up 5 +forward 2 +up 2 +down 3 +forward 7 +forward 2 +down 1 +down 9 +forward 1 +down 1 +forward 9 +up 9 +down 9 +forward 9 +down 4 +down 1 +up 5 +down 2 +forward 9 +down 2 +up 3 +up 6 +forward 1 +forward 8 +down 5 +down 8 +up 2 +down 2 +up 4 +down 2 +down 4 +forward 6 +up 4 +down 1 +forward 9 +forward 4 +down 9 +up 7 +forward 7 +down 3 +forward 2 +down 6 +up 6 +down 5 +down 7 +forward 4 +forward 1 +forward 7 +forward 4 +forward 4 +up 2 +down 2 +down 5 +forward 7 +down 6 +forward 8 +down 3 +down 9 +forward 7 +forward 1 +down 2 +up 7 +forward 4 +forward 2 +forward 6 +forward 5 +forward 9 +forward 9 +down 9 +down 9 +up 7 +forward 7 +forward 7 +forward 1 +forward 2 +down 1 +down 4 +forward 7 +forward 5 +down 1 +up 2 +forward 3 +forward 2 +forward 1 +forward 6 +down 4 +up 6 +forward 7 +down 1 +forward 4 +up 6 +down 7 +down 4 +forward 1 +down 8 +down 2 +down 1 +down 8 +forward 4 +up 8 +down 4 +up 9 +up 3 +forward 6 +up 9 +down 1 +forward 3 +up 3 +forward 5 +up 3 +down 6 +forward 9 +down 3 +down 3 +up 5 +forward 5 +forward 8 +forward 9 +down 6 +down 3 +forward 6 +up 4 +up 3 +forward 3 +forward 2 +down 2 +up 9 +forward 4 +forward 6 +forward 2 +up 9 +down 2 +forward 7 +down 7 +up 1 +forward 2 +forward 8 +down 2 +down 6 +down 1 +forward 3 +forward 5 +forward 6 +forward 3 +down 3 +down 7 +up 3 +forward 2 +forward 5 +down 9 +forward 3 +down 9 +up 6 +down 6 +forward 3 +down 5 +forward 1 +down 5 +up 3 +forward 8 +forward 8 +down 5 +down 6 +down 1 +forward 9 +forward 4 +forward 1 +forward 8 +down 8 +down 9 +forward 7 +forward 9 +down 2 +down 6 +down 8 +down 3 +forward 5 +forward 7 +forward 4 +down 9 +down 2 +forward 4 +forward 7 +down 2 +down 7 +forward 8 +down 8 +forward 4 +up 8 +forward 3 +forward 9 +forward 4 +down 9 +down 6 +up 1 +down 3 +down 7 +down 4 +forward 9 +forward 4 +up 9 +down 6 +forward 3 +up 1 +down 8 +down 5 +forward 9 +down 4 +down 2 +down 2 +down 5 +up 5 +down 5 +forward 5 +forward 2 +up 1 +forward 2 +up 2 +forward 8 +down 2 +down 7 +forward 1 From 57a2d60dc08aa126f3fa0a45a9199dea79c06118 Mon Sep 17 00:00:00 2001 From: Bruno BELANYI Date: Thu, 2 Dec 2021 10:10:45 +0100 Subject: [PATCH 4/4] 2020: d02: ex2: add solution --- 2021/d02/ex2/ex2.py | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100755 2021/d02/ex2/ex2.py diff --git a/2021/d02/ex2/ex2.py b/2021/d02/ex2/ex2.py new file mode 100755 index 0000000..a5a5f3d --- /dev/null +++ b/2021/d02/ex2/ex2.py @@ -0,0 +1,33 @@ +#!/usr/bin/env python + +import itertools +import sys +from typing import List + + +def solve(input: List[str]) -> int: + x, y, aim = 0, 0, 0 + + for instruction in input: + dir, length = instruction.split(" ") + length = int(length) + if dir == "forward": + x += length + y += length * aim + elif dir == "down": + aim += length + elif dir == "up": + aim -= length + else: + assert False + + return x * y + + +def main() -> None: + input = [line.strip() for line in sys.stdin.readlines()] + print(solve(input)) + + +if __name__ == "__main__": + main()