1
0
mirror of https://github.com/chylex/Advent-of-Code.git synced 2025-07-27 18:59:07 +02:00

Add 2021 - Day 7 - Part 2

This commit is contained in:
chylex 2021-12-14 13:46:33 +01:00
parent a858c0e28c
commit 422740ed39
Signed by: chylex
GPG Key ID: 4DE42C8F19A80548

View File

@ -6,10 +6,28 @@ fun main() {
val p1 = originalPositions.minOrNull() ?: return
val p2 = originalPositions.maxOrNull() ?: return
val candidates = p1..p2
val cheapestFuel = (p1..p2).minOf { p ->
part1(originalPositions, candidates)
part2(originalPositions, candidates)
}
fun part1(originalPositions: IntArray, candidates: IntRange) {
val cheapestFuel = candidates.minOf { p ->
originalPositions.sumOf { abs(it - p) }
}
println("Cheapest fuel: $cheapestFuel")
println("Cheapest fuel at constant fuel usage: $cheapestFuel")
}
fun part2(originalPositions: IntArray, candidates: IntRange) {
val cheapestFuel = candidates.minOf { p1 ->
originalPositions.sumOf { p2 ->
abs(p2 - p1).let { steps ->
(steps * (steps + 1)) / 2
}
}
}
println("Cheapest fuel at polynomial fuel usage: $cheapestFuel")
}