summary refs log tree commit diff stats
path: root/day12.py
diff options
context:
space:
mode:
Diffstat (limited to 'day12.py')
-rw-r--r--day12.py28
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))