mirror of
https://gitlab.com/MisterBiggs/advent-of-code-2019.git
synced 2025-06-15 22:56:47 +00:00
40 lines
1.0 KiB
Python
40 lines
1.0 KiB
Python
def intcode(seq, offset=0):
|
|
parameter = str(seq[offset])
|
|
parameter = parameter.rjust(5, "0")
|
|
opcode = int(parameter[-2:])
|
|
|
|
parameters = [int(x) for x in parameter[:-2][::-1]]
|
|
|
|
params = len(parameters)
|
|
|
|
for parameter in parameters:
|
|
if parameter == 0:
|
|
index = seq[3 + offset]
|
|
|
|
if opcode == 99:
|
|
return seq
|
|
vals = [seq[seq[1 + offset]], seq[seq[2 + offset]]]
|
|
|
|
if opcode == 1:
|
|
seq[index] = sum(vals)
|
|
return intcode(seq, offset + 4)
|
|
elif opcode == 2:
|
|
seq[index] = vals[0] * vals[1]
|
|
return intcode(seq, offset + 4)
|
|
elif opcode == 3:
|
|
seq[index] = inp
|
|
return intcode(seq, offset + 4)
|
|
elif opcode == 4:
|
|
seq[index] = out
|
|
return intcode(seq, offset + 4)
|
|
|
|
else:
|
|
return seq
|
|
|
|
|
|
# with open("C:\Coding\Advent Of Code 2019\Day 5\input.txt") as input:
|
|
# main_sequence = list(map(int, input.read().split(",")))
|
|
|
|
print(intcode([1002, 4, 3, 4, 33]))
|
|
|