diff --git a/2021/src/main/kotlin/Day06.kt b/2021/src/main/kotlin/Day06.kt new file mode 100644 index 0000000..c0673bd --- /dev/null +++ b/2021/src/main/kotlin/Day06.kt @@ -0,0 +1,27 @@ +package be.vandewalleh.aoc.days + +import be.vandewalleh.aoc.utils.BaseDay +import be.vandewalleh.aoc.utils.input.Day + +@Day +class Day06 : BaseDay() { + override fun part1() = run(80) + override fun part2() = run(256) + + private fun run(days: Int): Long { + var fish = LongArray(9) + input.csv.ints.forEach { fish[it] = fish[it] + 1 } + + var newFish: LongArray + for (day in 1..days) { + newFish = LongArray(9) + for (timer in 8 downTo 1) { + newFish[timer - 1] = fish[timer] + } + newFish[8] = fish[0] + newFish[6] = fish[0] + newFish[6] + fish = newFish + } + return fish.sum() + } +} diff --git a/2021/src/main/resources/day06.txt b/2021/src/main/resources/day06.txt new file mode 100644 index 0000000..445de95 --- /dev/null +++ b/2021/src/main/resources/day06.txt @@ -0,0 +1 @@ +1,1,3,1,3,2,1,3,1,1,3,1,1,2,1,3,1,1,3,5,1,1,1,3,1,2,1,1,1,1,4,4,1,2,1,2,1,1,1,5,3,2,1,5,2,5,3,3,2,2,5,4,1,1,4,4,1,1,1,1,1,1,5,1,2,4,3,2,2,2,2,1,4,1,1,5,1,3,4,4,1,1,3,3,5,5,3,1,3,3,3,1,4,2,2,1,3,4,1,4,3,3,2,3,1,1,1,5,3,1,4,2,2,3,1,3,1,2,3,3,1,4,2,2,4,1,3,1,1,1,1,1,2,1,3,3,1,2,1,1,3,4,1,1,1,1,5,1,1,5,1,1,1,4,1,5,3,1,1,3,2,1,1,3,1,1,1,5,4,3,3,5,1,3,4,3,3,1,4,4,1,2,1,1,2,1,1,1,2,1,1,1,1,1,5,1,1,2,1,5,2,1,1,2,3,2,3,1,3,1,1,1,5,1,1,2,1,1,1,1,3,4,5,3,1,4,1,1,4,1,4,1,1,1,4,5,1,1,1,4,1,3,2,2,1,1,2,3,1,4,3,5,1,5,1,1,4,5,5,1,1,3,3,1,1,1,1,5,5,3,3,2,4,1,1,1,1,1,5,1,1,2,5,5,4,2,4,4,1,1,3,3,1,5,1,1,1,1,1,1 diff --git a/2021/src/test/kotlin/Day06Test.kt b/2021/src/test/kotlin/Day06Test.kt new file mode 100644 index 0000000..d78ab69 --- /dev/null +++ b/2021/src/test/kotlin/Day06Test.kt @@ -0,0 +1,13 @@ +package be.vandewalleh.aoc.days + +class Day06Test : BaseDayTest(6) { + override val example = """ + 3,4,3,1,2 + """.trimIndent() + + override val part1Example = 5934L + override val part1Answer = 373378L + + override val part2Example = 26984457539 + override val part2Answer = 1682576647495 +}