diff options
| author | Gustav Sörnäs <gustav@sornas.net> | 2020-12-09 07:16:56 +0100 |
|---|---|---|
| committer | Gustav Sörnäs <gustav@sornas.net> | 2020-12-09 07:16:56 +0100 |
| commit | 58e288f2e90e47a5a073b1abe83d815261e4a7e5 (patch) | |
| tree | f995c09a13a8a8549f99cce8e16137c42b6af0a4 /20/py | |
| parent | 3a5b2553c855559864842757723dbe2c7f4c5c87 (diff) | |
| download | aoc-58e288f2e90e47a5a073b1abe83d815261e4a7e5.tar.gz | |
d8 convert to int once
Diffstat (limited to '20/py')
| -rw-r--r-- | 20/py/d08.py | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/20/py/d08.py b/20/py/d08.py index f2aa572..081b7b2 100644 --- a/20/py/d08.py +++ b/20/py/d08.py @@ -2,6 +2,10 @@ import sys +def parse(prog): + return [[(l := line.strip().split())[0], int(l[1])] for line in prog] + + def run(prog): acc = 0 loc = 0 @@ -10,8 +14,7 @@ def run(prog): if loc in execed: return False, acc execed.add(loc) - inst, offset = prog[loc].strip().split() - offset = int(offset) + inst, offset = prog[loc] if inst == "acc": acc += offset loc += 1 @@ -29,11 +32,11 @@ def pt1(_in): def pt2(_in): for i in range(len(_in)): prog = _in.copy() - inst, offset = prog[i].strip().split() + inst, offset = prog[i] if inst == "jmp": - prog[i] = "nop 0" + prog[i][0] = "nop" elif inst == "nop": - prog[i] = f"jmp {offset}" + prog[i][0] = "jmp" else: continue ret, acc = run(prog) |
