blob: 9c1b79f5fbc798ff0c3af3e1c8f6eb7cfa235fe9 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
import kotlin.math.absoluteValue
object Day07 {
fun part1(input: String): Int {
val numbers = input.trim().split(",").map(String::toInt)
val range = numbers.minOrNull()!!..numbers.maxOrNull()!!
return range.minOf { n -> numbers.sumOf { (it - n).absoluteValue } }
}
fun part2(input: String): Int {
val numbers = input.trim().split(",").map(String::toInt)
val range = numbers.minOrNull()!!..numbers.maxOrNull()!!
return range.minOf { n -> numbers.map { (it - n).absoluteValue }.sumOf { (it * (it + 1)) / 2 } }
}
}
fun main() {
val testInput = readInputAsString("Day07_test")
check(Day07.part1(testInput) == 37)
check(Day07.part2(testInput) == 168)
val input = readInputAsString("Day07")
println(Day07.part1(input))
println(Day07.part2(input))
}
|