summaryrefslogtreecommitdiffstats
path: root/20/py
diff options
context:
space:
mode:
authorGustav Sörnäs <gustav@sornas.net>2020-12-10 09:40:34 +0100
committerGustav Sörnäs <gustav@sornas.net>2020-12-10 09:40:55 +0100
commit2978d5399b2e6e04ae6d4525485464dc9192083e (patch)
treeaa7c104070c5a4ea154136e8f9e9ccc3c25c05f7 /20/py
parentabf063fc5f113bd5fbf5ba2c4e8bf8ea591f57c1 (diff)
downloadaoc-2978d5399b2e6e04ae6d4525485464dc9192083e.tar.gz
no deepcopy day 8
Diffstat (limited to '20/py')
-rw-r--r--20/py/d08.py15
1 files changed, 8 insertions, 7 deletions
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__":