Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- number_monkeys = dict()
- math_monkeys = dict()
- with open("input.txt") as file:
- for line in file:
- line=line.strip()
- monkey, yell = line.split(": ")
- if yell.isnumeric():
- number_monkeys[monkey] = int(yell)
- else:
- math_monkeys[monkey] = yell
- f_del=set()
- while math_monkeys:
- for key in math_monkeys:
- m1,o,m2 = math_monkeys[key].split()
- if m1 in number_monkeys and m2 in number_monkeys:
- n1=number_monkeys[m1]
- n2=number_monkeys[m2]
- match o:
- case '+':
- number_monkeys[key]=n1+n2
- case '-':
- number_monkeys[key]=n1-n2
- case '*':
- number_monkeys[key]=n1*n2
- case '/':
- number_monkeys[key]=n1/n2
- f_del.add(key)
- for i in f_del:
- del(math_monkeys[i])
- f_del=set()
- print("Part 1:", round(number_monkeys["root"]))
- #####################################################################################################################
- from sympy import symbols, solveset, Eq
- number_monkeys = dict()
- math_monkeys = dict()
- with open("input.txt") as file:
- for line in file:
- line=line.strip()
- monkey, yell = line.split(": ")
- if monkey=="humn":
- continue
- elif monkey=="root":
- root=yell.split("+")
- elif yell.isnumeric():
- number_monkeys[monkey] = int(yell)
- else:
- math_monkeys[monkey] = yell
- f_del=set()
- humn=symbols("humn")
- number_monkeys["humn"]=humn
- while math_monkeys:
- for key in math_monkeys:
- m1,o,m2 = math_monkeys[key].split()
- if m1 in number_monkeys and m2 in number_monkeys:
- n1=number_monkeys[m1]
- n2=number_monkeys[m2]
- match o:
- case '+':
- number_monkeys[key]=n1+n2
- case '-':
- number_monkeys[key]=n1-n2
- case '*':
- number_monkeys[key]=n1*n2
- case '/':
- number_monkeys[key]=n1/n2
- f_del.add(key)
- for i in f_del:
- del(math_monkeys[i])
- f_del=set()
- x=number_monkeys[root[0].strip()]
- y=number_monkeys[root[1].strip()]
- print("Part 2:", *map(int,solveset(Eq(x,y), humn)))
Advertisement
Add Comment
Please, Sign In to add comment