Update 2015 solutions

This commit is contained in:
2024-10-20 15:19:25 -04:00
parent 87ab42743e
commit e73fa3bae7
16 changed files with 362 additions and 411 deletions

View File

@@ -1,27 +1,37 @@
from lib import get_data
import json
data = open(0).read().strip()
part_2 = False
data = get_data(__file__).strip()
def addup(d):
r = 0
if isinstance(d, list):
for e in d:
v = addup(e)
if v is not None:
r += v
elif isinstance(d, dict):
for e in d.values():
v = addup(e)
if v is None:
return 0
r += v
elif isinstance(d, str):
if part_2 and d == "red":
return None
o = json.loads(data)
def xsum(obj, part_2=False):
t = 0
if type(obj) is int:
t += obj
elif type(obj) is list:
for o in obj:
t += xsum(o, part_2)
elif type(obj) is dict:
if part_2:
st = 0
for o in obj.values():
st += xsum(o, part_2)
if type(o) is str and o == "red":
break
else:
t += st
else:
for o in obj.values():
t += xsum(o, part_2)
elif type(obj) is str:
pass
else:
r += d
return r
print(obj)
assert False
return t
data = json.loads(data)
print(addup(data))
print(xsum(o))
print(xsum(o, True))