diff --git a/day_16.rb b/day_16.rb index 1871a80..604d4f9 100644 --- a/day_16.rb +++ b/day_16.rb @@ -15,7 +15,15 @@ cars: 2 perfumes: 1 FACTS -puts sues.select {|sue,data| facts.select {|k,_| data.keys.include?(k) }.all? {|k,v| data[k] == v }} +facts_gt = Hash[%w[ cats trees ].map {|k| [k,facts[k]] }] +facts_lt = Hash[%w[ pomeranians goldfish ].map {|k| [k,facts[k]] }] +%w[ cats trees pomeranians goldfish ].each {|k| facts.delete(k) } + +puts sues.select {|sue,data| + facts.select {|k,_| data.keys.include?(k) }.all? {|k,v| data[k] == v } && + facts_gt.select {|k,_| data.keys.include?(k) }.all? {|k,v| data[k] > v } && + facts_lt.select {|k,_| data.keys.include?(k) }.all? {|k,v| data[k] < v } +} __END__ Sue 1: goldfish: 9, cars: 0, samoyeds: 9