diff --git a/days/src/main/kotlin/Day09.kt b/days/src/main/kotlin/Day09.kt index d3da114..2061335 100644 --- a/days/src/main/kotlin/Day09.kt +++ b/days/src/main/kotlin/Day09.kt @@ -8,11 +8,15 @@ import be.vandewalleh.aoc.utils.input.createDay @Day(9) class Day09(@Lines val input: Input) { + private var part1Result = 0L + fun part1() = input.value .toList() + .asSequence() .windowed(size = 26) .find { !isValid(it) } ?.last() + ?.also { part1Result = it } private fun isValid(items: List): Boolean { val preamble = items.take(25) @@ -29,15 +33,13 @@ class Day09(@Lines val input: Input) { } fun part2(): Long { - val a = 731031916L var size = 2 while (true) { for (startIndex in input.value.indices) { val lastIndex = input.value.size - 1 - size if (startIndex + size > lastIndex) break val slice = input.value.sliceArray(startIndex..startIndex + size) - val sum = slice.reduce { acc, l -> acc + l } - if (sum == a) return slice.minOrNull()!! + slice.maxOrNull()!! + if (slice.sum() == part1Result) return slice.minOrNull()!! + slice.maxOrNull()!! } size++ }