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