my-solutions/advent-of-code-2023/01/part-2/main.kt

40 lines
927 B
Kotlin
Raw Normal View History

package main
import java.io.File
fun main() {
var sum = 0
File("../input.txt").forEachLine{
var firstDigit = ""
var lastDigit = ""
for (c in replaceStrWithDigits(it)) {
if (c.isDigit()) {
lastDigit = c.toString()
if (firstDigit == "") {
firstDigit = c.toString()
}
}
}
sum += (firstDigit + lastDigit).toInt()
}
println(sum)
}
fun replaceStrWithDigits(line: String): String {
var s = line
var words = arrayOf("one", "two", "three", "four", "five", "six", "seven", "eight", "nine")
var i = 0
while (i < s.length) {
for (w in words.indices) {
if (s.slice(i..s.length-1).startsWith(words[w])) {
s = s.replaceRange(i, i + 1, (w + 1).toString())
break
}
}
i += 1
}
return s
}