Add 2022 extras and rm input/samples
This commit is contained in:
parent
7809a82ce7
commit
1d2098a708
30 changed files with 402 additions and 6471 deletions
49
Python/2022/21/main.py
Normal file
49
Python/2022/21/main.py
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
input = open("input", 'r')
|
||||
# input = open("sample", 'r')
|
||||
|
||||
data = {}
|
||||
total = 0
|
||||
|
||||
for line in input:
|
||||
line = line.strip()
|
||||
monkey, value = line.split(": ")
|
||||
if len(value) > 5:
|
||||
m1,op,m2 = value.split(" ")
|
||||
data[monkey] = [m1, m2, op]
|
||||
else:
|
||||
data[monkey] = [int(value)]
|
||||
|
||||
def evaluate(monkey, graph):
|
||||
if len(graph[monkey]) > 1:
|
||||
m1, m2, op = graph[monkey]
|
||||
left = evaluate(m1, graph)
|
||||
right = evaluate(m2, graph)
|
||||
return eval(f"{left}{op}{right}")
|
||||
else:
|
||||
return graph[monkey][0]
|
||||
|
||||
print(evaluate("root", data), end="\n\n")
|
||||
|
||||
r1, r2, op = data["root"]
|
||||
data["root"] = [r1, r2, "=="]
|
||||
|
||||
def evaluate2(monkey, graph):
|
||||
if len(graph[monkey]) > 1:
|
||||
m1, m2, op = graph[monkey]
|
||||
left = evaluate(m1, graph)
|
||||
right = evaluate(m2, graph)
|
||||
return eval(f"{left}{op}{right}")
|
||||
else:
|
||||
return graph[monkey][0]
|
||||
|
||||
print(evaluate("wcnp", data))
|
||||
data["humn"] = [3876027196100]
|
||||
print(evaluate("pgnv", data))
|
||||
print(evaluate("wcnp", data) > evaluate("pgnv", data))
|
||||
print(evaluate("wcnp", data) == evaluate("pgnv", data))
|
||||
|
||||
# for i in range(3876027190000,3876028190000):
|
||||
# data["humn"] = [i]
|
||||
# if evaluate("root", data):
|
||||
# print(i)
|
||||
# break
|
||||
Loading…
Add table
Add a link
Reference in a new issue