parent
25a0b3611c
commit
fafc5a3d13
@ -0,0 +1,15 @@
|
||||
root: pppw + sjmn
|
||||
dbpl: 5
|
||||
cczh: sllz + lgvd
|
||||
zczc: 2
|
||||
ptdq: humn - dvpt
|
||||
dvpt: 3
|
||||
lfqf: 4
|
||||
humn: 5
|
||||
ljgn: 2
|
||||
sjmn: drzm * dbpl
|
||||
sllz: 4
|
||||
pppw: cczh / lfqf
|
||||
lgvd: ljgn * ptdq
|
||||
drzm: hmdt - zczc
|
||||
hmdt: 32
|
@ -0,0 +1,40 @@
|
||||
lines = open("input.txt", "r").read().splitlines()
|
||||
|
||||
|
||||
class Monkey:
|
||||
def __init__(self, name=None, number=None, childA=None, childB=None, op=None):
|
||||
self.name = name
|
||||
self.number = number
|
||||
self.childA = childA
|
||||
self.childB = childB
|
||||
self.op = op
|
||||
|
||||
def yell(self):
|
||||
if self.number != None:
|
||||
return self.number
|
||||
else:
|
||||
if self.op == "+":
|
||||
return monkeys[self.childA].yell() + monkeys[self.childB].yell()
|
||||
elif self.op == "-":
|
||||
return monkeys[self.childA].yell() - monkeys[self.childB].yell()
|
||||
elif self.op == "*":
|
||||
return monkeys[self.childA].yell() * monkeys[self.childB].yell()
|
||||
elif self.op == "/":
|
||||
return monkeys[self.childA].yell() / monkeys[self.childB].yell()
|
||||
|
||||
|
||||
monkeys = {}
|
||||
|
||||
for line in lines:
|
||||
print(line)
|
||||
name = line.split(" ")[0][:-1]
|
||||
rest = line.split(" ")[1:]
|
||||
if len(rest) == 1:
|
||||
monkeys[name] = Monkey(name=name, number=int(rest[0]))
|
||||
else:
|
||||
childA = rest[0]
|
||||
childB = rest[2]
|
||||
op = rest[1]
|
||||
monkeys[name] = Monkey(name=name, childA=childA, childB=childB, op=op)
|
||||
|
||||
print(int(monkeys["root"].yell()))
|
@ -0,0 +1,39 @@
|
||||
lines = open("input.txt", "r").read().splitlines()
|
||||
|
||||
|
||||
class Monkey:
|
||||
def __init__(self, name=None, number=None, childA=None, childB=None, op=None):
|
||||
self.name = name
|
||||
self.number = number
|
||||
self.childA = childA
|
||||
self.childB = childB
|
||||
self.op = op
|
||||
|
||||
def yell(self):
|
||||
if self.number != None:
|
||||
return self.number
|
||||
else:
|
||||
if self.name == "root":
|
||||
return monkeys[self.childA].yell() == monkeys[self.childB].yell()
|
||||
if self.op == "+":
|
||||
return monkeys[self.childA].yell() + monkeys[self.childB].yell()
|
||||
elif self.op == "-":
|
||||
return monkeys[self.childA].yell() - monkeys[self.childB].yell()
|
||||
elif self.op == "*":
|
||||
return monkeys[self.childA].yell() * monkeys[self.childB].yell()
|
||||
elif self.op == "/":
|
||||
return monkeys[self.childA].yell() / monkeys[self.childB].yell()
|
||||
|
||||
|
||||
monkeys = {}
|
||||
|
||||
for line in lines:
|
||||
name = line.split(" ")[0][:-1]
|
||||
rest = line.split(" ")[1:]
|
||||
if len(rest) == 1:
|
||||
monkeys[name] = Monkey(name=name, number=int(rest[0]))
|
||||
else:
|
||||
childA = rest[0]
|
||||
childB = rest[2]
|
||||
op = rest[1]
|
||||
monkeys[name] = Monkey(name=name, childA=childA, childB=childB, op=op)
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in new issue