YN4NWVEYBQCF4UVF6RRAIK4UJFRQWUKQG554ZUK5QCQTHX2ANLNQC
3,4,3,1,2
import java.io.File
import java.math.BigInteger
fun main() {
val fish = File("src/day6/input.txt").readLines()[0].split(",").map { it.toInt() }
println(solve(fish, 80))
println(solve(fish, 256))
}
fun solve(input: List<Int>, days: Int): BigInteger {
var fish = input
.groupingBy { it }
.eachCount()
.mapValues { it.value.toBigInteger() }
.toMutableMap()
for (day in 1..days) {
fish = fish.mapKeys { (9 + it.key.minus(1)) % 9 }.toMutableMap()
fish[6] = (fish[6] ?: 0.toBigInteger()).add(fish[8] ?: 0.toBigInteger())
}
return fish.values.reduce { a, b -> a.add(b) }
}
1,2,4,5,5,5,2,1,3,1,4,3,2,1,5,5,1,2,3,4,4,1,2,3,2,1,4,4,1,5,5,1,3,4,4,4,1,2,2,5,1,5,5,3,2,3,1,1,3,5,1,1,2,4,2,3,1,1,2,1,3,1,2,1,1,2,1,2,2,1,1,1,1,5,4,5,2,1,3,2,4,1,1,3,4,1,4,1,5,1,4,1,5,3,2,3,2,2,4,4,3,3,4,3,4,4,3,4,5,1,2,5,2,1,5,5,1,3,4,2,2,4,2,2,1,3,2,5,5,1,3,3,4,3,5,3,5,5,4,5,1,1,4,1,4,5,1,1,1,4,1,1,4,2,1,4,1,3,4,4,3,1,2,2,4,3,3,2,2,2,3,5,5,2,3,1,5,1,1,1,1,3,1,4,1,4,1,2,5,3,2,4,4,1,3,1,1,1,3,4,4,1,1,2,1,4,3,4,2,2,3,2,4,3,1,5,1,3,1,4,5,5,3,5,1,3,5,5,4,2,3,2,4,1,3,2,2,2,1,3,4,2,5,2,5,3,5,5,1,1,1,2,2,3,1,4,4,4,5,4,5,5,1,4,5,5,4,1,1,5,3,3,1,4,1,3,1,1,4,1,5,2,3,2,3,1,2,2,2,1,1,5,1,4,5,2,4,2,2,3