From c6e95f860ff2bb56b8294be83fad281d8c0e3661 Mon Sep 17 00:00:00 2001 From: Alpha Chen Date: Thu, 2 Dec 2021 21:12:17 -0800 Subject: [PATCH] [2021][ruby][3.x] --- 2021/ruby/day_03.rb | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 2021/ruby/day_03.rb diff --git a/2021/ruby/day_03.rb b/2021/ruby/day_03.rb new file mode 100644 index 0000000..317dbb4 --- /dev/null +++ b/2021/ruby/day_03.rb @@ -0,0 +1,23 @@ +bits = ARGF.read.split("\n").map(&:chars) + +gamma = bits.transpose.map {|a| a.tally.max_by(&:last).first }.join +epsilon = bits.transpose.map {|a| a.tally.min_by(&:last).first }.join +p gamma.to_i(2) * epsilon.to_i(2) + +oxy = bits.clone +(0..oxy.first.length).each do |i| + b = oxy.transpose.map {|a| a.tally.sort.reverse.max_by(&:last).first }[i] + oxy.select! {|x| x[i] == b } + break if oxy.length == 1 +end +oxy = oxy.join.to_i(2) + +co2 = bits.clone +(0..co2.first.length).each do |i| + b = co2.transpose.map {|a| a.tally.sort.min_by(&:last).first }[i] + co2.select! {|x| x[i] == b } + break if co2.length == 1 +end +co2 = co2.join.to_i(2) + +p oxy * co2