summary refs log tree commit diff stats
path: root/day12.py
blob: 90722ace4803b303a025df24ebafa0a56e6e938c (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
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))