[2021][ruby][3.x]
change rttnszwyoryvouknysmxqvymtpmmvkkz
commit 9d0ee3c97c4287e7abd1a8df0b2ddd654d3457b2
author Alpha Chen <alpha@kejadlen.dev>
date
parent vtxwxqpy
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