AoC/2024/src/main/kotlin/day1.kt
2024-12-01 11:54:58 +01:00

40 lines
776 B
Kotlin

import kotlin.math.abs
fun main() {
val input = object {}.javaClass.getResourceAsStream("day1.txt")
?.bufferedReader()
?.lineSequence()
?: error("Cannot read input")
val a = mutableListOf<Int>()
val b = mutableListOf<Int>()
val spaces = "\\s+".toRegex()
for (line in input) {
val parts = line.split(spaces, limit = 2)
val (first, second) = parts
a.add(first.toInt())
b.add(second.toInt())
}
assert(a.size == b.size)
a.sort()
b.sort()
var sum = 0
for (index in a.indices) {
sum += abs(a[index] - b[index])
}
println("Part 1: $sum")
sum = 0
for (value in a) {
sum += value * b.count { it == value }
}
println("Part 2: $sum")
}