advent-of-code-2024/03-b.kts
2024-12-03 14:09:56 +08:00

21 lines
No EOL
559 B
Kotlin

import java.util.Scanner
import java.util.regex.Pattern
val pattern: Pattern = Pattern.compile("mul\\([0-9]+,[0-9]+\\)|do\\(\\)|don't\\(\\)")
val scanner = Scanner(System.`in`)
var sum = 0
var enabled = true
while (true) {
val next: String = scanner.findWithinHorizon(pattern, 0) ?: break
when (next) {
"do()" -> enabled = true
"don't()" -> enabled = false
else -> if (enabled) {
sum += next.replace("mul(", "").replace(")", "").split(",").map { it.toInt() }.let { (a, b) -> a*b }
}
}
}
println(sum)