2019 day 9

This commit is contained in:
2025-08-01 17:35:51 +02:00
parent f705cf64fe
commit 854d0b51fb
5 changed files with 185 additions and 77 deletions

View File

@@ -14,7 +14,7 @@ def main(inp):
max_ret = 0
for seq in permutations([0, 1, 2, 3, 4], 5):
ret = amplifiers(mem, list(seq))
max_ret = max(ret[0], max_ret)
max_ret = max(ret.stdout[0], max_ret)
print("Part 1: ", max_ret)
max_ret = 0
@@ -26,10 +26,10 @@ def main(inp):
def amplifiers(program, sequence):
ret = interpret_intcode(program[::], [sequence.pop(0), 0])
ret = interpret_intcode(program[::], [sequence.pop(0), ret.pop()])
ret = interpret_intcode(program[::], [sequence.pop(0), ret.pop()])
ret = interpret_intcode(program[::], [sequence.pop(0), ret.pop()])
ret = interpret_intcode(program[::], [sequence.pop(0), ret.pop()])
ret = interpret_intcode(program[::], [sequence.pop(0), ret.stdout.pop()])
ret = interpret_intcode(program[::], [sequence.pop(0), ret.stdout.pop()])
ret = interpret_intcode(program[::], [sequence.pop(0), ret.stdout.pop()])
ret = interpret_intcode(program[::], [sequence.pop(0), ret.stdout.pop()])
return ret
@@ -58,20 +58,20 @@ def tests():
program = [3, 15, 3, 16, 1002, 16, 10, 16, 1, 16, 15, 15, 4, 15, 99, 0, 0]
sequence = [4, 3, 2, 1, 0]
res = amplifiers(program, sequence)
assert res == [43210]
assert res.stdout == [43210]
program = [3,23,3,24,1002,24,10,24,1002,23,-1,23,
101,5,23,23,1,24,23,23,4,23,99,0,0]
sequence = [0,1,2,3,4]
res = amplifiers(program, sequence)
assert res == [54321]
assert res.stdout == [54321]
program = [3,31,3,32,1002,32,10,32,1001,31,-2,31,1007,31,0,33,
1002,33,7,33,1,33,31,31,1,32,31,31,4,31,99,0,0,0]
sequence = [1,0,4,3,2]
res = amplifiers(program, sequence)
assert res == [65210]
assert res.stdout == [65210]
def tests2():