diff options
author | Tomasz Kramkowski <tk@the-tk.com> | 2021-11-24 22:25:42 +0000 |
---|---|---|
committer | Tomasz Kramkowski <tk@the-tk.com> | 2021-11-24 22:25:42 +0000 |
commit | a7a6b86002b595bc167af72606b14c67ed1bdf8f (patch) | |
tree | bff94329cf969bd9df68d3b9782fee2107db56c2 /12/solution.py | |
download | aoc2015-a7a6b86002b595bc167af72606b14c67ed1bdf8f.tar.gz aoc2015-a7a6b86002b595bc167af72606b14c67ed1bdf8f.tar.xz aoc2015-a7a6b86002b595bc167af72606b14c67ed1bdf8f.zip |
init commit
Diffstat (limited to '12/solution.py')
-rw-r--r-- | 12/solution.py | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/12/solution.py b/12/solution.py new file mode 100644 index 0000000..f4162fb --- /dev/null +++ b/12/solution.py @@ -0,0 +1,25 @@ +from json import load + +def part1(data) -> int: + if type(data) is list: + return sum(part1(d) for d in data) + elif type(data) is dict: + return sum(part1(v) for k, v in data.items()) + if type(data) is int: + return data + return 0 + +def part2(data) -> int: + if type(data) is list: + return sum(part2(d) for d in data) + elif type(data) is dict and 'red' not in data.values(): + return sum(part2(v) for k, v in data.items()) + if type(data) is int: + return data + return 0 + +if __name__ == '__main__': + with open('input') as f: + d = load(f) + print(part1(d)) + print(part2(d)) |