Files
aocpy/2019/d2.py
2024-07-30 08:32:57 -04:00

42 lines
1006 B
Python

from lib import get_data, str_to_ints
def part_1(data):
xs = str_to_ints(data)
xs[1] = 12
xs[2] = 2
for i in range(0, len(xs), 4):
match xs[i]:
case 1:
xs[xs[i + 3]] = xs[xs[i + 1]] + xs[xs[i + 2]]
case 2:
xs[xs[i + 3]] = xs[xs[i + 1]] * xs[xs[i + 2]]
print(xs[0])
def part_2(data):
for noun in range(1, 101):
for verb in range(1, 101):
xs = str_to_ints(data)
xs[1] = noun
xs[2] = verb
for i in range(0, len(xs), 4):
match xs[i]:
case 1:
xs[xs[i + 3]] = xs[xs[i + 1]] + xs[xs[i + 2]]
case 2:
xs[xs[i + 3]] = xs[xs[i + 1]] * xs[xs[i + 2]]
if xs[0] == 19690720:
print(100 * noun + verb)
return
def main():
data = get_data(__file__)
part_1(data)
part_2(data)
if __name__ == "__main__":
main()