day21 part one done, need to continue after christmas

master
Tom Weber 2 years ago
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…
Cancel
Save