1
0
Fork 0

day(07): add solution

Signed-off-by: Matej Focko <mfocko@redhat.com>
This commit is contained in:
Matej Focko 2021-12-07 10:50:38 +01:00
parent 238df0614e
commit a92bf3b96f
2 changed files with 30 additions and 0 deletions

29
src/day07/Day07.kt Normal file
View file

@ -0,0 +1,29 @@
package day07
import readInputAsCommaSeparatedInts
import kotlin.math.absoluteValue
// for part 1, it's always included in the input set
fun part1(input: List<Int>): Int = input.toSet().minOf { target ->
input.sumOf {
(it - target).absoluteValue
}
}
fun part2(input: List<Int>): Int = (input.minOrNull()!!..input.maxOrNull()!!).minOf { target ->
input.sumOf {
val diff = (it - target).absoluteValue
diff * (diff + 1) / 2
}
}
fun main() {
val testInput = readInputAsCommaSeparatedInts(7, "test_input").sorted()
val input = readInputAsCommaSeparatedInts(7, "input").sorted()
check(part1(testInput) == 37)
println(part1(input))
check(part2(testInput) == 168)
println(part2(input))
}

1
src/day07/test_input.txt Normal file
View file

@ -0,0 +1 @@
16,1,2,0,4,2,7,1,2,14