advent-of-code-2024/02-a.kts
2024-12-02 14:53:16 +08:00

33 lines
721 B
Kotlin

import java.util.Scanner
val isSafelyIncreasing = { offset: Int -> offset in 1..3 }
val isSafelyDecreasing = { offset: Int -> offset in (-3)..(-1) }
fun isSafeRoute(levels: List<Int>): Boolean {
val levelOffsets = levels.foldIndexed(ArrayList<Int>()) { index, acc, i ->
if (index > 0) {
acc.add(i - levels[index - 1])
}
acc
}
return levelOffsets.all(isSafelyIncreasing) || levelOffsets.all(isSafelyDecreasing)
}
val scanner = Scanner(System.`in`)
var safeCount = 0
while (scanner.hasNextInt()) {
val line = scanner.nextLine()
val numbers = line.split(" ").map { it.toInt() }
if (isSafeRoute(numbers)) {
safeCount++
}
}
println(safeCount)