🎄Advent of Code - Day 6 : tidy code

This commit is contained in:
Denis-Cosmin NUTIU 2023-12-06 12:35:41 +02:00
parent 63086e7d7e
commit bda5097757

View file

@ -12,19 +12,21 @@ class WaitForIt : Puzzle("2023", "6") {
}.zipWithNext().map { }.zipWithNext().map {
// Take the zipped lines (since we only have 2) and transform them into races. // Take the zipped lines (since we only have 2) and transform them into races.
it.first.mapIndexed { index, i -> Race(i, it.second[index]) } it.first.mapIndexed { index, i -> Race(i, it.second[index]) }
}.flatten().also { println("The input is $it") } }.flatten().also {
println("The input is $it")
}
} }
override fun partOne() { override fun partOne() {
val raceTimes = getRaceTimesPart1().map { getRaceTimesPart1().map {
// here we transform a race into a list of all the possible combinations that we can have // here we transform a race into a list of all the possible combinations that we can have
(1..<it.raceTime).map { time -> Race((it.raceTime - time) * time, it.distance) } (1..<it.raceTime).map { time -> Race((it.raceTime - time) * time, it.distance) }
}.parallelStream().map { }.parallelStream().map {
// Here we filter out the losing races // Here we filter out the losing races
it.filter { it.raceTime > it.distance }.count() it.filter { it.raceTime > it.distance }.count()
}.reduce { acc, i -> acc * i }.get() }.reduce { acc, i -> acc * i }.get().also {
println("The number of ways the record was beaten $it.")
println("The number of ways the record was beaten $raceTimes.") }
} }
override fun partTwo() { override fun partTwo() {
@ -34,6 +36,8 @@ class WaitForIt : Puzzle("2023", "6") {
}.map { }.map {
// Here we filter out the losing races // Here we filter out the losing races
it.parallelStream().filter { it.raceTime > it.distance }.count() it.parallelStream().filter { it.raceTime > it.distance }.count()
}.reduce { acc, i -> acc * i }.also { println("The number of ways the record was beaten $it.") } }.reduce { acc, i -> acc * i }.also {
println("The number of ways the record was beaten $it.")
}
} }
} }