From eb3803e9429a6701cf13c535bbcca9c836357dd2 Mon Sep 17 00:00:00 2001 From: Matej Focko Date: Mon, 6 Dec 2021 11:15:39 +0100 Subject: [PATCH] day(06): do not recreate list every time Signed-off-by: Matej Focko --- src/day06/Day06.kt | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/src/day06/Day06.kt b/src/day06/Day06.kt index f258670..83c5dd2 100644 --- a/src/day06/Day06.kt +++ b/src/day06/Day06.kt @@ -3,14 +3,10 @@ package day06 import readInputAsCommaSeparatedInts fun howManyAfter(input: List, days: Int): Long = - (1..days) - .fold(List(9) { i -> input.count { it == i }.toLong() }) { counts, _ -> - List(9) { i -> - when (i) { - 6 -> counts[0] + counts[7] - else -> counts[(i + 1) % 9] - } - } + (0 until days) + .fold(MutableList(9) { i -> input.count { it == i }.toLong() }) { counts, day -> + counts[(7 + day) % 9] += counts[day % 9] + counts } .sum()