diff options
author | Marvin Borner | 2022-12-10 09:57:16 +0100 |
---|---|---|
committer | Marvin Borner | 2022-12-10 10:02:39 +0100 |
commit | 5179b273acc3c76b1aa56cbece86837b6d3d3427 (patch) | |
tree | 90d286049b20dc8ddaa8f05067269b9ba9160176 /2022/10/solve.py | |
parent | bd845fcd5fca3adfbd390755ee8f784ea7b64a9f (diff) |
Interesting
Diffstat (limited to '2022/10/solve.py')
-rw-r--r-- | 2022/10/solve.py | 39 |
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() |