diff --git a/src/main/kotlin/AdventOfCode2023/day6/WaitForIt.kt b/src/main/kotlin/AdventOfCode2023/day6/WaitForIt.kt index 3ced8be..871e58c 100644 --- a/src/main/kotlin/AdventOfCode2023/day6/WaitForIt.kt +++ b/src/main/kotlin/AdventOfCode2023/day6/WaitForIt.kt @@ -11,29 +11,33 @@ class WaitForIt : Puzzle("2023", "6") { it.split(Regex("\\s")).drop(1).map { it.trim().toLongOrNull() }.filterNotNull() }.zipWithNext().map { // Take the zipped lines (since we only have 2) and transform them into races. - it.first.mapIndexed { index, i -> Race(i, it.second[index])} - }.flatten().also { println("The input is $it") } + it.first.mapIndexed { index, i -> Race(i, it.second[index]) } + }.flatten().also { + println("The input is $it") + } } 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 - (1.. Race((it.raceTime - time)* time, it.distance) } + (1.. Race((it.raceTime - time) * time, it.distance) } }.parallelStream().map { // Here we filter out the losing races it.filter { it.raceTime > it.distance }.count() - }.reduce { acc, i -> acc * i }.get() - - println("The number of ways the record was beaten $raceTimes.") + }.reduce { acc, i -> acc * i }.get().also { + println("The number of ways the record was beaten $it.") + } } override fun partTwo() { listOf(Race(49787980, 298118510661181)).map { // here we transform a race into a list of all the possible combinations that we can have - (1.. Race((it.raceTime - time)* time, it.distance) } + (1.. Race((it.raceTime - time) * time, it.distance) } }.map { // Here we filter out the losing races 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.") + } } } \ No newline at end of file