40 lines
905 B
Ruby
40 lines
905 B
Ruby
res = 0
|
|
numbers = %w[one two three four five six seven eight nine]
|
|
|
|
File.foreach("./2023/day1/data") do |line|
|
|
first_digit_index = 10000
|
|
first_digit = 0
|
|
last_digit_index = -1
|
|
last_digit = 0
|
|
|
|
(1..9).each do |int|
|
|
next if (line.index int.to_s).nil?
|
|
if (line.index int.to_s) < first_digit_index
|
|
first_digit_index = line.index int.to_s
|
|
first_digit = int
|
|
end
|
|
|
|
if (line.rindex int.to_s) > last_digit_index
|
|
last_digit_index = line.rindex int.to_s
|
|
last_digit = int
|
|
end
|
|
end
|
|
|
|
numbers.each_with_index do |int, index|
|
|
next if (line.rindex int).nil?
|
|
if (line.index int) < first_digit_index
|
|
first_digit_index = line.index int
|
|
first_digit = index + 1
|
|
end
|
|
|
|
if (line.rindex int) > last_digit_index
|
|
last_digit_index = line.rindex int
|
|
last_digit = index + 1
|
|
end
|
|
end
|
|
|
|
res += first_digit * 10 + last_digit
|
|
end
|
|
|
|
puts res
|