another day of coding

This commit is contained in:
Peter Hudec
2015-12-20 00:41:02 +01:00
parent 6a4482d038
commit 570f54b720
27 changed files with 178234 additions and 0 deletions

1
12/input Normal file

File diff suppressed because one or more lines are too long

1
12/input1 Normal file
View File

@ -0,0 +1 @@
[1,2,3]

1
12/input2 Normal file
View File

@ -0,0 +1 @@
[1,{"c":"red","b":2},3]

1
12/input3 Normal file
View File

@ -0,0 +1 @@
{"d":"red","e":[1,2,3,4],"f":5}

1
12/input4 Normal file
View File

@ -0,0 +1 @@
[1,"red",5]

40
12/part1.py Normal file
View 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
View 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()