Unable to load image

Day 21 AoC: use Z3 b-words

Post code, boast about it.

13
Jump in the discussion.

No email address required.

Why use Z3 when sympy do trick?

from sympy import symbols, solve
f = open('AOC2022Day21.txt')
lines = f.read().strip().split('\n')

monkeys = {}
x = symbols('x')
while 'root' not in monkeys:
    for line in lines:
        monkey = line.split(':')[0]
        if monkey == 'humn':
            monkeys[monkey] = x
        if monkey in monkeys:
            continue
        valstr = line.split(': ')[1]
        if valstr.isnumeric():
            monkeys[monkey] = int(line.split(': ')[1])
        else:
            sv = valstr.split(' ')
            m1 = sv[0]
            op = sv[1]
            m2 = sv[2]
            if m1 not in monkeys or m2 not in monkeys:
                continue
            else:
                if monkey == 'root':
                    sol = solve(monkeys[m1]-monkeys[m2])
                    print(sol)
                    monkeys['root'] = False
                if op == '+':
                    monkeys[monkey] = monkeys[m1]+monkeys[m2]
                if op == '*':
                    monkeys[monkey] = monkeys[m1]*monkeys[m2]
                if op == '-':
                    monkeys[monkey] = monkeys[m1]-monkeys[m2]
                if op == '/':
                    monkeys[monkey] = monkeys[m1]/monkeys[m2]
Jump in the discussion.

No email address required.



Now playing: Hot-Head Bop (DKC2).mp3

Link copied to clipboard
Action successful!
Error, please refresh the page and try again.