diff --git a/02/input.txt b/02/input.txt new file mode 100644 index 0000000..ea79e47 --- /dev/null +++ b/02/input.txt @@ -0,0 +1,1000 @@ +forward 4 +down 9 +forward 6 +down 5 +up 2 +forward 5 +forward 7 +up 5 +down 9 +up 6 +down 6 +down 1 +down 1 +up 2 +down 3 +up 3 +forward 8 +forward 7 +down 6 +down 7 +forward 6 +forward 9 +forward 7 +up 9 +down 4 +down 6 +down 5 +down 9 +forward 8 +down 9 +forward 9 +forward 4 +forward 4 +up 3 +up 8 +down 9 +down 8 +down 4 +forward 5 +forward 4 +up 6 +forward 6 +up 3 +up 8 +up 3 +up 4 +down 3 +down 5 +down 5 +up 1 +forward 9 +down 4 +forward 6 +down 6 +up 2 +up 9 +forward 1 +forward 2 +forward 7 +down 6 +up 6 +forward 1 +forward 7 +down 7 +forward 9 +forward 4 +forward 6 +down 5 +up 9 +down 1 +up 5 +up 5 +up 9 +down 5 +forward 7 +down 1 +up 9 +down 7 +forward 2 +down 4 +down 4 +forward 8 +forward 8 +down 6 +down 3 +up 7 +down 3 +forward 9 +down 7 +forward 2 +down 1 +forward 5 +up 9 +down 2 +up 2 +down 3 +up 7 +forward 9 +forward 7 +down 4 +down 5 +up 3 +down 3 +down 5 +forward 9 +down 3 +forward 9 +down 3 +up 9 +down 5 +forward 4 +down 4 +up 8 +forward 7 +up 1 +down 2 +forward 4 +down 7 +down 9 +down 4 +down 4 +forward 6 +down 7 +down 2 +down 1 +forward 1 +down 2 +forward 1 +down 7 +forward 5 +up 3 +forward 6 +up 9 +down 3 +down 3 +down 9 +forward 4 +down 4 +forward 9 +forward 6 +down 7 +up 9 +up 6 +forward 4 +down 5 +forward 2 +down 7 +down 7 +forward 4 +forward 5 +down 8 +down 5 +up 4 +forward 7 +up 8 +down 8 +forward 4 +forward 5 +down 6 +down 1 +down 1 +down 9 +forward 4 +up 1 +down 8 +up 7 +down 1 +up 2 +forward 4 +down 7 +down 7 +down 2 +forward 7 +down 2 +up 1 +up 4 +down 6 +forward 5 +forward 2 +up 1 +forward 2 +forward 9 +up 9 +up 7 +forward 9 +down 8 +up 5 +down 6 +down 6 +up 8 +down 1 +forward 6 +down 5 +forward 2 +down 9 +down 9 +up 4 +forward 4 +forward 2 +forward 7 +forward 3 +down 1 +forward 8 +up 9 +down 7 +forward 9 +forward 1 +forward 5 +up 6 +down 6 +forward 6 +up 3 +forward 9 +down 3 +forward 2 +down 7 +down 3 +up 9 +down 2 +down 3 +forward 5 +down 9 +forward 8 +down 2 +forward 1 +down 9 +down 7 +forward 2 +forward 6 +forward 4 +forward 5 +down 5 +down 1 +forward 5 +up 4 +down 4 +up 8 +down 4 +up 4 +down 1 +down 2 +down 9 +down 2 +up 4 +down 1 +forward 2 +forward 1 +forward 9 +down 5 +up 4 +up 1 +forward 8 +forward 6 +forward 9 +up 9 +forward 4 +forward 4 +down 1 +forward 6 +forward 7 +forward 3 +up 5 +up 7 +down 1 +forward 4 +down 3 +down 5 +up 7 +down 4 +up 9 +down 3 +down 5 +forward 7 +forward 8 +up 5 +up 1 +forward 3 +up 8 +forward 3 +down 2 +forward 1 +forward 9 +forward 1 +down 2 +forward 7 +down 5 +forward 6 +down 9 +up 9 +forward 5 +forward 7 +forward 6 +down 2 +up 2 +forward 3 +forward 4 +forward 3 +down 5 +forward 1 +forward 2 +forward 6 +down 4 +forward 2 +forward 6 +up 8 +forward 2 +up 4 +forward 7 +down 2 +forward 1 +forward 7 +down 6 +forward 4 +down 3 +down 2 +down 2 +forward 4 +down 8 +forward 6 +forward 6 +down 2 +up 3 +up 1 +forward 1 +down 5 +down 2 +forward 4 +forward 7 +forward 3 +down 3 +forward 9 +down 1 +down 7 +forward 6 +forward 1 +up 6 +forward 7 +forward 1 +down 5 +down 4 +forward 6 +up 1 +down 1 +up 9 +down 2 +down 2 +forward 3 +up 4 +down 5 +down 5 +down 3 +down 6 +up 8 +forward 2 +forward 2 +down 6 +down 1 +up 4 +up 1 +down 5 +up 4 +up 2 +forward 4 +forward 6 +forward 3 +down 7 +forward 8 +up 5 +forward 5 +down 1 +forward 2 +forward 6 +down 8 +up 6 +down 1 +down 7 +forward 4 +forward 2 +up 1 +down 6 +forward 3 +forward 1 +forward 5 +forward 9 +forward 9 +down 4 +forward 2 +down 1 +forward 1 +forward 7 +forward 5 +down 9 +down 8 +down 1 +down 6 +down 1 +up 7 +down 3 +forward 3 +up 6 +up 4 +down 7 +down 7 +forward 6 +up 7 +down 7 +forward 9 +down 9 +down 3 +forward 6 +forward 9 +forward 1 +down 4 +forward 5 +down 4 +down 2 +down 3 +up 3 +forward 9 +forward 7 +forward 5 +down 5 +forward 7 +up 4 +down 1 +forward 3 +down 3 +forward 4 +down 9 +forward 2 +down 5 +down 1 +forward 8 +down 3 +forward 7 +up 1 +down 3 +forward 2 +up 8 +down 2 +forward 4 +forward 4 +forward 4 +down 5 +up 6 +down 3 +forward 5 +down 4 +up 5 +forward 1 +forward 6 +up 1 +down 3 +forward 2 +forward 9 +down 7 +down 4 +forward 5 +up 3 +up 6 +up 1 +forward 4 +forward 1 +forward 1 +down 7 +up 4 +down 3 +down 8 +down 3 +forward 8 +forward 3 +down 6 +down 9 +forward 3 +forward 9 +forward 7 +down 8 +down 6 +down 4 +forward 2 +up 4 +forward 8 +down 1 +forward 9 +forward 1 +down 9 +forward 2 +down 7 +down 2 +up 7 +down 1 +up 8 +forward 8 +down 7 +forward 1 +down 1 +forward 3 +forward 1 +up 2 +down 7 +down 5 +forward 5 +down 8 +forward 4 +down 1 +up 2 +up 8 +down 8 +down 1 +down 5 +up 3 +forward 3 +forward 5 +down 2 +up 4 +down 2 +forward 7 +forward 9 +up 9 +up 7 +forward 1 +up 4 +forward 3 +up 5 +forward 9 +forward 9 +forward 6 +forward 2 +down 7 +forward 8 +forward 4 +forward 7 +down 8 +down 5 +down 6 +forward 6 +down 4 +down 1 +down 9 +down 1 +forward 3 +forward 5 +down 6 +down 7 +down 9 +down 8 +down 4 +up 5 +forward 7 +down 9 +forward 6 +down 7 +forward 5 +down 5 +forward 1 +down 5 +down 3 +up 9 +up 3 +forward 2 +up 9 +forward 6 +down 1 +down 5 +down 9 +down 4 +up 6 +forward 9 +down 4 +down 9 +down 5 +down 8 +down 5 +down 4 +up 5 +down 8 +up 8 +forward 5 +down 9 +forward 2 +up 2 +down 6 +forward 2 +forward 4 +forward 6 +down 6 +down 1 +forward 8 +down 5 +down 5 +forward 2 +down 7 +down 5 +down 6 +down 9 +forward 4 +up 9 +down 3 +down 7 +forward 3 +down 5 +up 1 +forward 5 +up 2 +down 2 +forward 2 +up 3 +up 6 +forward 2 +forward 7 +down 8 +forward 8 +forward 7 +forward 6 +down 5 +down 6 +down 6 +down 9 +up 5 +down 3 +up 1 +up 9 +up 5 +down 4 +down 4 +down 8 +forward 8 +up 5 +down 9 +forward 1 +up 1 +forward 2 +down 9 +forward 5 +up 9 +forward 7 +down 7 +down 5 +up 1 +up 2 +down 8 +down 7 +up 4 +forward 9 +down 4 +up 8 +down 5 +down 1 +forward 9 +down 6 +up 8 +down 6 +forward 7 +up 6 +up 5 +forward 2 +up 7 +forward 7 +forward 5 +down 1 +forward 9 +down 8 +forward 9 +down 3 +down 3 +forward 9 +up 1 +down 2 +forward 9 +down 7 +forward 4 +forward 3 +forward 4 +down 5 +forward 9 +forward 9 +down 5 +forward 4 +down 5 +down 2 +down 6 +forward 5 +forward 8 +forward 6 +up 9 +down 9 +forward 7 +down 6 +down 7 +down 4 +forward 1 +forward 3 +forward 6 +forward 4 +forward 3 +forward 4 +down 1 +forward 2 +forward 3 +forward 9 +up 8 +forward 6 +down 1 +up 5 +down 1 +down 4 +down 7 +down 5 +down 9 +down 2 +down 9 +forward 2 +down 2 +up 5 +forward 2 +forward 3 +forward 5 +up 8 +up 1 +down 9 +forward 2 +down 4 +down 9 +down 6 +down 5 +down 8 +forward 3 +forward 8 +forward 7 +up 3 +up 5 +down 9 +down 5 +up 6 +forward 4 +forward 4 +forward 4 +down 9 +down 2 +down 7 +down 1 +down 2 +down 4 +forward 7 +down 9 +forward 4 +forward 5 +up 5 +forward 4 +forward 9 +forward 1 +forward 5 +down 3 +forward 1 +forward 5 +up 9 +down 7 +forward 7 +forward 6 +down 2 +down 3 +forward 9 +down 1 +forward 4 +forward 9 +up 7 +forward 7 +down 5 +forward 9 +forward 2 +up 3 +down 3 +down 7 +down 5 +up 7 +up 9 +up 7 +forward 3 +forward 3 +forward 8 +up 9 +forward 8 +forward 9 +forward 4 +down 2 +forward 7 +down 6 +up 3 +up 9 +forward 8 +forward 2 +down 9 +down 7 +forward 1 +up 4 +up 7 +forward 2 +up 4 +forward 4 +up 1 +forward 3 +down 7 +forward 5 +down 4 +forward 2 +forward 7 +up 4 +down 1 +down 6 +forward 1 +forward 9 +up 6 +forward 7 +forward 7 +down 8 +forward 7 +down 8 +down 9 +up 3 +forward 3 +forward 3 +down 8 +up 2 +down 2 +down 4 +up 3 +down 3 +forward 7 +down 4 +up 8 +down 9 +down 9 +up 7 +down 1 +forward 2 +up 1 +down 3 +up 9 +down 6 +up 2 +forward 6 +up 8 +up 1 +down 6 +down 1 +up 6 +up 4 +up 2 +forward 6 +down 6 +down 1 +forward 7 +up 9 +up 1 +forward 4 +forward 5 +up 6 +forward 9 +down 1 +down 9 +down 3 +down 7 +forward 7 +down 1 +down 4 +forward 6 +down 5 +up 4 +forward 9 +up 5 +down 1 +down 2 +down 2 +up 4 +forward 1 +forward 3 +down 7 +forward 4 +down 4 +down 8 +down 5 +forward 3 +up 4 +forward 5 +down 2 +down 4 +down 4 +down 1 +forward 2 +forward 1 +forward 8 +forward 4 +up 4 +down 9 +up 6 +forward 9 +up 5 +down 5 +forward 3 +up 1 +forward 7 +down 4 +forward 7 +down 9 +up 8 +down 5 +forward 1 +down 5 +down 8 +forward 3 +up 6 +forward 3 +up 7 +forward 6 +forward 9 +up 1 +down 3 +down 9 +up 4 +up 6 +forward 5 +down 6 +down 3 +down 4 +up 1 +forward 5 +down 5 +down 2 +forward 6 +down 8 +down 3 +up 8 +forward 5 +forward 6 +down 6 +down 6 +down 6 +forward 7 +up 4 +forward 7 +up 4 +down 2 +forward 4 +forward 2 +down 6 +up 1 +down 1 +down 4 +up 8 +down 6 +forward 3 +forward 6 +down 6 +forward 5 +down 4 +up 2 +up 3 +down 3 +up 1 +forward 2 +up 1 +forward 4 +up 5 +up 2 +down 7 +forward 3 +up 2 +forward 5 +down 1 +down 3 +down 2 +forward 5 +down 1 +up 5 +forward 4 +down 7 +up 8 +up 3 +down 7 +down 7 +forward 9 +forward 1 +up 6 +down 4 +down 7 +forward 1 +down 4 +forward 9 +up 1 +forward 3 +down 1 +up 3 +down 6 +down 8 +down 6 +forward 6 +forward 6 +up 2 +down 8 +forward 5 diff --git a/02/solution_1.py b/02/solution_1.py new file mode 100755 index 0000000..d2503b5 --- /dev/null +++ b/02/solution_1.py @@ -0,0 +1,9 @@ +#!/usr/bin/env python3 +from collections import defaultdict +d = defaultdict(int) + +with open("input.txt", "r") as _input: + for i, n in [x.split(' ') for x in _input.readlines()]: + d[i] += int(n) + +print("Answer:", (d["down"] - d["up"]) * d["forward"]) diff --git a/02/solution_2.py b/02/solution_2.py new file mode 100755 index 0000000..2148894 --- /dev/null +++ b/02/solution_2.py @@ -0,0 +1,14 @@ +#!/usr/bin/env python3 + +aim = 0 +h = 0 +v = 0 + +with open("input.txt", "r") as _input: + for i, n in [x.split(' ') for x in _input.readlines()]: + n = int(n) + if i == "down": aim += n + elif i == "up": aim -= n + elif i == "forward": h += n; v += aim * n + +print("Answer:", h * v)