another day of coding
This commit is contained in:
40
12/part1.py
Normal file
40
12/part1.py
Normal file
@ -0,0 +1,40 @@
|
||||
#!/usr/bin/python
|
||||
|
||||
import json
|
||||
from pprint import pprint
|
||||
|
||||
def traverse_structructure(data):
|
||||
|
||||
result = []
|
||||
|
||||
if type(data) is list:
|
||||
for item in data:
|
||||
for value in traverse_structructure(item):
|
||||
yield value
|
||||
|
||||
if type(data) is dict:
|
||||
for key in data.keys():
|
||||
for value in traverse_structructure(data[key]):
|
||||
yield value
|
||||
|
||||
if type(data) is unicode:
|
||||
yield 0
|
||||
|
||||
if type(data) is int:
|
||||
yield data
|
||||
|
||||
# print type(data)
|
||||
|
||||
def main():
|
||||
with open("input") as data_file:
|
||||
input = json.load(data_file)
|
||||
|
||||
sum = 0
|
||||
for value in traverse_structructure(input):
|
||||
sum += value
|
||||
|
||||
print sum
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
|
||||
54
12/part2.py
Normal file
54
12/part2.py
Normal file
@ -0,0 +1,54 @@
|
||||
#!/usr/bin/python
|
||||
|
||||
import json
|
||||
from pprint import pprint
|
||||
|
||||
def traverse_structructure(data):
|
||||
|
||||
result = []
|
||||
|
||||
if type(data) is list:
|
||||
for item in data:
|
||||
for value in traverse_structructure(item):
|
||||
if value is None:
|
||||
value = 0
|
||||
yield value
|
||||
|
||||
if type(data) is dict:
|
||||
sum = 0
|
||||
foundNone = False
|
||||
for key in data.keys():
|
||||
for value in traverse_structructure(data[key]):
|
||||
print "dict: %s" % value
|
||||
if value is None:
|
||||
foundNone = True
|
||||
value = 0
|
||||
sum += value
|
||||
if foundNone:
|
||||
sum = 0
|
||||
yield sum
|
||||
|
||||
if type(data) is unicode:
|
||||
if data == 'red':
|
||||
yield None
|
||||
else:
|
||||
yield 0
|
||||
|
||||
if type(data) is int:
|
||||
yield data
|
||||
|
||||
|
||||
def main():
|
||||
with open("input") as data_file:
|
||||
input = json.load(data_file)
|
||||
|
||||
sum = 0
|
||||
for value in traverse_structructure(input):
|
||||
if value is not None:
|
||||
sum += value
|
||||
|
||||
print sum
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
|
||||
Reference in New Issue
Block a user