Save part1 result + sum()
This commit is contained in:
parent
77dd1e2cc5
commit
3399bd8c43
@ -8,11 +8,15 @@ import be.vandewalleh.aoc.utils.input.createDay
|
|||||||
@Day(9)
|
@Day(9)
|
||||||
class Day09(@Lines val input: Input<LongArray>) {
|
class Day09(@Lines val input: Input<LongArray>) {
|
||||||
|
|
||||||
|
private var part1Result = 0L
|
||||||
|
|
||||||
fun part1() = input.value
|
fun part1() = input.value
|
||||||
.toList()
|
.toList()
|
||||||
|
.asSequence()
|
||||||
.windowed(size = 26)
|
.windowed(size = 26)
|
||||||
.find { !isValid(it) }
|
.find { !isValid(it) }
|
||||||
?.last()
|
?.last()
|
||||||
|
?.also { part1Result = it }
|
||||||
|
|
||||||
private fun isValid(items: List<Long>): Boolean {
|
private fun isValid(items: List<Long>): Boolean {
|
||||||
val preamble = items.take(25)
|
val preamble = items.take(25)
|
||||||
@ -29,15 +33,13 @@ class Day09(@Lines val input: Input<LongArray>) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun part2(): Long {
|
fun part2(): Long {
|
||||||
val a = 731031916L
|
|
||||||
var size = 2
|
var size = 2
|
||||||
while (true) {
|
while (true) {
|
||||||
for (startIndex in input.value.indices) {
|
for (startIndex in input.value.indices) {
|
||||||
val lastIndex = input.value.size - 1 - size
|
val lastIndex = input.value.size - 1 - size
|
||||||
if (startIndex + size > lastIndex) break
|
if (startIndex + size > lastIndex) break
|
||||||
val slice = input.value.sliceArray(startIndex..startIndex + size)
|
val slice = input.value.sliceArray(startIndex..startIndex + size)
|
||||||
val sum = slice.reduce { acc, l -> acc + l }
|
if (slice.sum() == part1Result) return slice.minOrNull()!! + slice.maxOrNull()!!
|
||||||
if (sum == a) return slice.minOrNull()!! + slice.maxOrNull()!!
|
|
||||||
}
|
}
|
||||||
size++
|
size++
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user