diff --git a/2020/ruby/day_02.rb b/2020/ruby/day_02.rb index 2276a96..0135363 100644 --- a/2020/ruby/day_02.rb +++ b/2020/ruby/day_02.rb @@ -1,4 +1,5 @@ -p ARGF.read.scan(/(\d+)-(\d+)\s*(\w):\s*(\w+)/) +day1 = proc {|min,max,char,pass| (min..max).cover?(pass.count(char)) } +day2 = proc {|p1,p2,char,pass| [pass[p1-1], pass[p2-1]].count(char) == 1 } +puts ARGF.read.scan(/^(\d+)-(\d+)\s*(\w):\s*(\w+)$/) .map {|a,b,c,d| [a.to_i, b.to_i, c, d] } - # .count {|min,max,char,pass| (min..max).cover?(pass.count(char)) } - .count {|p1,p2,char,pass| [pass[p1-1], pass[p2-1]].tally[char] == 1 } + .count(&day2)