diff options
author | Marcin Chrzanowski <marcin.j.chrzanowski@gmail.com> | 2020-12-25 15:33:34 +0100 |
---|---|---|
committer | Marcin Chrzanowski <marcin.j.chrzanowski@gmail.com> | 2020-12-25 15:33:34 +0100 |
commit | 89015b843418b045c777dc20ca3cc3f052e7b9d2 (patch) | |
tree | b7e2dd538b11667c9753e91e10e366be5a33f376 /16/a.rb | |
parent | cefcd292ce98af21659c6a04c3dc7a8db9197447 (diff) |
Add day 16
Diffstat (limited to '16/a.rb')
-rw-r--r-- | 16/a.rb | 28 |
1 files changed, 28 insertions, 0 deletions
@@ -0,0 +1,28 @@ +sections = File.read('input.txt').split "\n\n" + +fields = sections[0].split "\n" +tickets = sections[2].split "\n" + +valid_values = Hash.new false + +fields.each do |field| + ranges = field.split(/.*: | or /).slice(1, 2) + ranges.each do |range| + from, to = range.split('-').map {|n| n.to_i} + (from..to).each do |n| + valid_values[n] = true + end + end +end + +invalid = 0 +tickets.each do |ticket| + values = ticket.split(',').map {|n| n.to_i} + values.each do |n| + if !valid_values[n] + invalid += n + end + end +end + +puts invalid |