parent
5c2f1eb45f
commit
37ac8ad85b
@ -0,0 +1 @@
|
||||
3.2
|
@ -0,0 +1,4 @@
|
||||
source "https://rubygems.org"
|
||||
|
||||
gem "minitest"
|
||||
gem "rake"
|
@ -0,0 +1,15 @@
|
||||
GEM
|
||||
remote: https://rubygems.org/
|
||||
specs:
|
||||
minitest (5.20.0)
|
||||
rake (13.1.0)
|
||||
|
||||
PLATFORMS
|
||||
arm64-darwin-22
|
||||
|
||||
DEPENDENCIES
|
||||
minitest
|
||||
rake
|
||||
|
||||
BUNDLED WITH
|
||||
2.4.1
|
@ -0,0 +1,24 @@
|
||||
lines = ARGF.readlines(chomp: true)
|
||||
|
||||
# part one
|
||||
p lines
|
||||
.map { _1.chars.select {|c| c =~ /\d/ }}
|
||||
.map { _1.values_at(0, -1) }
|
||||
.sum { _1.join.to_i }
|
||||
|
||||
# part two
|
||||
spellings = %w[
|
||||
one two three four five six seven eight nine
|
||||
].each.with_index.to_h { [_1, _2 + 1] }
|
||||
digits = (spellings.keys + spellings.values).join(?|)
|
||||
first_re = /(#{digits})(?~#{digits})/
|
||||
last_re = /.*(#{digits})/
|
||||
|
||||
p lines
|
||||
.sum { |line|
|
||||
[first_re, last_re]
|
||||
.map { _1.match(line)[1] }
|
||||
.map { spellings.fetch(_1, &:to_i) }
|
||||
.join
|
||||
.to_i
|
||||
}
|
Loading…
Reference in new issue