aboutsummaryrefslogtreecommitdiff
path: root/2022/10/solve.py
diff options
context:
space:
mode:
authorMarvin Borner2022-12-10 09:57:16 +0100
committerMarvin Borner2022-12-10 10:02:39 +0100
commit5179b273acc3c76b1aa56cbece86837b6d3d3427 (patch)
tree90d286049b20dc8ddaa8f05067269b9ba9160176 /2022/10/solve.py
parentbd845fcd5fca3adfbd390755ee8f784ea7b64a9f (diff)
Interesting
Diffstat (limited to '2022/10/solve.py')
-rw-r--r--2022/10/solve.py39
1 files changed, 39 insertions, 0 deletions
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()