diff options
Diffstat (limited to '20')
| -rw-r--r-- | 20/README | 2 | ||||
| -rw-r--r-- | 20/py/d08.py | 15 |
2 files changed, 9 insertions, 8 deletions
@@ -9,7 +9,7 @@ Day Time Ans Time Ans 5 1.660 959 1.708 527 6 1.346 6714 3.664 3435 7 2.884 139 2.681 58175 - 8 0.278 2025 274.072 2001 YIKES + 8 0.261 2025 5.063 2001 9 2.741 26796446 2.875 3353494 10 0.027 2046 0.161 1157018619904 ------- ------- diff --git a/20/py/d08.py b/20/py/d08.py index e825e89..46a2689 100644 --- a/20/py/d08.py +++ b/20/py/d08.py @@ -5,7 +5,7 @@ from copy import deepcopy def parse(prog): - return [[(l := line.strip().split())[0], int(l[1])] for line in prog] + return [((l := line.strip().split())[0], int(l[1])) for line in prog] def run(prog): @@ -32,19 +32,20 @@ def pt1(_in): def pt2(_in): - _in = parse(_in) - for i in range(len(_in)): - prog = deepcopy(_in) - inst, offset = prog[i] + prog = parse(_in) + for i in range(len(prog)): + orig = prog[i] + inst, offset = orig if inst == "jmp": - prog[i][0] = "nop" + prog[i] = ("nop", offset) elif inst == "nop": - prog[i][0] = "jmp" + prog[i] = ("jmp", offset) else: continue ret, acc = run(prog) if ret: return acc + prog[i] = orig if __name__ == "__main__": |
