diff --git a/2021/06/input/1.txt b/2021/06/input/1.txt new file mode 100644 index 0000000..c696217 --- /dev/null +++ b/2021/06/input/1.txt @@ -0,0 +1 @@ +1,3,4,1,1,1,1,1,1,1,1,2,2,1,4,2,4,1,1,1,1,1,5,4,1,1,2,1,1,1,1,4,1,1,1,4,4,1,1,1,1,1,1,1,2,4,1,3,1,1,2,1,2,1,1,4,1,1,1,4,3,1,3,1,5,1,1,3,4,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,5,2,5,5,3,2,1,5,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,5,1,1,1,1,5,1,1,1,1,1,4,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,3,1,2,4,1,5,5,1,1,5,3,4,4,4,1,1,1,2,1,1,1,1,1,1,2,1,1,1,1,1,1,5,3,1,4,1,1,2,2,1,2,2,5,1,1,1,2,1,1,1,1,3,4,5,1,2,1,1,1,1,1,5,2,1,1,1,1,1,1,5,1,1,1,1,1,1,1,5,1,4,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,5,4,5,1,1,1,1,1,1,1,5,1,1,3,1,1,1,3,1,4,2,1,5,1,3,5,5,2,1,3,1,1,1,1,1,3,1,3,1,1,2,4,3,1,4,2,2,1,1,1,1,1,1,1,5,2,1,1,1,2 diff --git a/2021/06/main.kt b/2021/06/main.kt new file mode 100644 index 0000000..d03d15e --- /dev/null +++ b/2021/06/main.kt @@ -0,0 +1,44 @@ +import java.io.File +import java.util.Collections + +fun main() { + val initialConfiguration = File("input/1.txt").readLines().single().split(',').map(String::toInt) + val configuration = FishConfiguration(initialConfiguration) + + for (day in 1..80) { + configuration.advanceToNextDay() + // configuration.print() + } + + println("Total fish: ${configuration.totalFish}") +} + +class FishConfiguration(initialConfiguration: List<Int>) { + private val state = initialConfiguration.toMutableList() + private var day = 0 + + val totalFish + get() = state.size + + fun advanceToNextDay() { + ++day + + var newFish = 0 + for ((index, timer) in state.withIndex()) { + if (timer == 0) { + ++newFish + state[index] = 6 + } + else { + state[index] = timer - 1 + } + } + + state.addAll(Collections.nCopies(newFish, 8)) + } + + @Suppress("unused") + fun print() { + println("Day ${day.toString().padStart(3)}: ${state.joinToString(",")}") + } +} diff --git a/README.md b/README.md index 9c5c549..dc70fdb 100644 --- a/README.md +++ b/README.md @@ -35,3 +35,4 @@ The versions should not matter, but I used Visual Studio 2019 with `MSVC v142 (1 | 2021 | 03 | Kotlin | | 2021 | 04 | Kotlin | | 2021 | 05 | Kotlin | +| 2021 | 06 | Kotlin | diff --git a/build.gradle.kts b/build.gradle.kts index 44be619..9d9f5bc 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -48,4 +48,5 @@ sourceSets { make(2021, 3) make(2021, 4) make(2021, 5) + make(2021, 6) }