mirror of
https://github.com/chylex/Advent-of-Code.git
synced 2025-06-03 09:34:05 +02:00
Add 2021 - Day 6 - Part 1
This commit is contained in:
parent
07287a648d
commit
a75cbd15cc
1
2021/06/input/1.txt
Normal file
1
2021/06/input/1.txt
Normal file
@ -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
|
44
2021/06/main.kt
Normal file
44
2021/06/main.kt
Normal file
@ -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(",")}")
|
||||||
|
}
|
||||||
|
}
|
@ -35,3 +35,4 @@ The versions should not matter, but I used Visual Studio 2019 with `MSVC v142 (1
|
|||||||
| 2021 | 03 | Kotlin |
|
| 2021 | 03 | Kotlin |
|
||||||
| 2021 | 04 | Kotlin |
|
| 2021 | 04 | Kotlin |
|
||||||
| 2021 | 05 | Kotlin |
|
| 2021 | 05 | Kotlin |
|
||||||
|
| 2021 | 06 | Kotlin |
|
||||||
|
@ -48,4 +48,5 @@ sourceSets {
|
|||||||
make(2021, 3)
|
make(2021, 3)
|
||||||
make(2021, 4)
|
make(2021, 4)
|
||||||
make(2021, 5)
|
make(2021, 5)
|
||||||
|
make(2021, 6)
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user