diff options
author | Christian Neukirchen <chneukirchen@gmail.com> | 2015-12-12 14:57:41 +0100 |
---|---|---|
committer | Christian Neukirchen <chneukirchen@gmail.com> | 2015-12-12 14:57:41 +0100 |
commit | bfab0ac65ae9860285c66704e260dde434d5da1f (patch) | |
tree | 49da0d2bedc8f15f38c8a0b1dbbc59d835c6d730 /day12.rb | |
parent | 54b99d9049559d9c562ed27bdad0dc855141878d (diff) | |
download | adventofcode2015-bfab0ac65ae9860285c66704e260dde434d5da1f.tar.gz adventofcode2015-bfab0ac65ae9860285c66704e260dde434d5da1f.tar.xz adventofcode2015-bfab0ac65ae9860285c66704e260dde434d5da1f.zip |
day12
Diffstat (limited to 'day12.rb')
-rw-r--r-- | day12.rb | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/day12.rb b/day12.rb new file mode 100644 index 0000000..c8af5cf --- /dev/null +++ b/day12.rb @@ -0,0 +1,37 @@ +require 'json' + +d = JSON.parse(File.read("day12")) + +def sum(o) + case o + when Hash + sum o.values + when Array + o.inject(0) { |a,e| a + sum(e) } + when Numeric + o + else + 0 + end +end + +def sum2(o) + case o + when Hash + if o.values.include?("red") + 0 + else + sum2 o.values + end + when Array + o.inject(0) { |a,e| a + sum2(e) } + when Numeric + o + else + 0 + end +end + +p sum(d) + +p sum2(d[2][7]["h"]["c"][0]) # 96852 |