From 5179b273acc3c76b1aa56cbece86837b6d3d3427 Mon Sep 17 00:00:00 2001 From: Marvin Borner Date: Sat, 10 Dec 2022 09:57:16 +0100 Subject: Interesting --- 2022/10/input | 145 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2022/10/solve.py | 39 +++++++++++++++ 2 files changed, 184 insertions(+) create mode 100644 2022/10/input create mode 100644 2022/10/solve.py (limited to '2022/10') diff --git a/2022/10/input b/2022/10/input new file mode 100644 index 0000000..540f82a --- /dev/null +++ b/2022/10/input @@ -0,0 +1,145 @@ +addx 1 +noop +noop +addx 4 +addx 5 +addx -2 +addx 19 +addx -12 +addx 3 +addx -2 +addx 4 +noop +noop +noop +addx 3 +addx -8 +addx 15 +addx 1 +noop +noop +addx 6 +addx -1 +noop +addx -38 +noop +addx 10 +addx -5 +noop +addx 3 +addx 2 +addx 7 +noop +noop +addx 3 +noop +addx 2 +addx 3 +addx -2 +addx 2 +addx 7 +noop +noop +addx 9 +noop +addx -12 +noop +addx 11 +addx -38 +noop +noop +noop +addx 5 +addx 5 +noop +noop +noop +addx 3 +addx -12 +addx 14 +noop +addx 1 +addx 3 +addx 1 +addx 5 +addx 4 +addx 1 +noop +noop +noop +noop +noop +addx -9 +addx 17 +addx -39 +addx 38 +addx -8 +addx -26 +addx 3 +addx 4 +addx 16 +noop +addx -11 +addx 3 +noop +addx 2 +addx 3 +addx -2 +addx 2 +noop +addx 13 +addx -8 +noop +addx 7 +addx -5 +addx 8 +addx -40 +addx 16 +addx -9 +noop +addx -7 +addx 8 +addx 2 +addx 7 +noop +noop +addx -15 +addx 16 +addx 2 +addx 5 +addx 2 +addx -20 +addx 12 +addx 11 +addx 8 +addx -1 +addx 3 +noop +addx -39 +addx 2 +noop +addx 5 +noop +noop +noop +addx 4 +addx 1 +noop +noop +addx 2 +addx 5 +addx 2 +addx 1 +addx 4 +addx -1 +addx 2 +noop +addx 2 +noop +addx 8 +noop +noop +noop +addx -10 +noop +noop diff --git a/2022/10/solve.py b/2022/10/solve.py new file mode 100644 index 0000000..31c933f --- /dev/null +++ b/2022/10/solve.py @@ -0,0 +1,39 @@ +data = [dat.strip().split(" ") for dat in open("input").readlines() if dat != ''] + +def solve(): + signal_strength = 0 + + crt = [["?" for j in range(40)] for i in range(6)] + col = row = 0 + + x = 1 + cycle = timeout = i = 0 + while i < len(data): + instr = data[i] + + if cycle > 0 and cycle % 40 == 0: + col = 0 + row += 1 + + cycle += 1 + + if cycle - 20 >= 0 and (cycle - 20) % 40 == 0: + signal_strength += cycle * x + + crt[row][col] = "#" if col in [x-1,x,x+1] else "." + col += 1 + + if instr[0] == "noop": + i += 1 + elif timeout > 0 and instr[0] == "addx": + timeout -= 1 + if timeout == 0: + x += int(instr[1]) + i += 1 + elif timeout == 0 and instr[0] == "addx": + timeout = 1 + + print(f"Part 1: {signal_strength}") + print("\n".join(["".join(row) for row in crt])) + +solve() -- cgit v1.2.3