diff options
Diffstat (limited to 'day12.py')
-rw-r--r-- | day12.py | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/day12.py b/day12.py new file mode 100644 index 0000000..90722ac --- /dev/null +++ b/day12.py @@ -0,0 +1,28 @@ +#!/usr/bin/env python + +import re +import json + +with open('day12.txt') as in_file: + data = in_file.read().strip() + nums = re.findall(r'-?\d+', data) + nums = map(int, nums) + # part 1 + print(sum(nums)) + +data = json.loads(data) + +def total_nums(obj): + if isinstance(obj, list): + return sum(map(total_nums, obj)) + elif isinstance(obj, dict): + if any(val == 'red' for val in obj.values()): + return 0 + else: + return sum(map(total_nums, obj.values())) + elif isinstance(obj, int): + return obj + else: + return 0 + +print(total_nums(data)) |