parent
df42ca7275
commit
15953efb0f
@ -0,0 +1,29 @@
|
||||
input = ARGF.read.chomp
|
||||
|
||||
REGEX = Regexp.new(
|
||||
(?a..?z)
|
||||
.map {|x| [x, x.upcase] }
|
||||
.flat_map(&:permutation)
|
||||
.flat_map(&:to_a)
|
||||
.map(&:join)
|
||||
.join(?|)
|
||||
)
|
||||
|
||||
def react(polymer)
|
||||
last = nil
|
||||
until polymer == last
|
||||
last = polymer
|
||||
polymer = polymer.gsub(REGEX, "")
|
||||
end
|
||||
polymer
|
||||
end
|
||||
|
||||
# Part One
|
||||
# p react(input).size
|
||||
|
||||
# Part Two
|
||||
p (?a..?z)
|
||||
.map {|unit| input.gsub(/#{unit}/i, "") }
|
||||
.map {|polymer| react(polymer) }
|
||||
.map {|reacted| reacted.size }
|
||||
.min
|
Loading…
Reference in new issue