File tree Expand file tree Collapse file tree
main/kotlin/adventofcode/year2025
test/kotlin/adventofcode/year2025 Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -2,6 +2,7 @@ package adventofcode.year2025
22
33import adventofcode.Puzzle
44import adventofcode.PuzzleInput
5+ import kotlin.math.max
56
67class Day05Cafeteria (
78 customInput : PuzzleInput ? = null ,
@@ -11,13 +12,28 @@ class Day05Cafeteria(
1112
1213 return Pair (
1314 ranges.map { range ->
14- val (start, end ) = range.split(" -" ).map(String ::toLong)
15- LongRange (start, end )
15+ val (from, to ) = range.split(" -" ).map(String ::toLong)
16+ LongRange (from, to )
1617 },
1718 ids.map(String ::toLong),
1819 )
1920 }
2021
22+ override fun partTwo () =
23+ parseInput()
24+ .first
25+ .sortedBy { range -> range.first }
26+ .fold(emptyList<LongRange >()) { ranges, range ->
27+ when {
28+ ranges.isEmpty() -> listOf (range)
29+
30+ range.first - 1 <= ranges.last().last ->
31+ ranges.dropLast(1 ) + listOf (ranges.last().first.. max(ranges.last().last, range.last))
32+
33+ else -> ranges + listOf (range)
34+ }
35+ }.sumOf { range -> range.last - range.first + 1 }
36+
2137 override fun partOne () =
2238 parseInput()
2339 .let { (ranges, ids) -> ids.count { id -> ranges.any { range -> range.contains(id) } } }
Original file line number Diff line number Diff line change @@ -2,4 +2,4 @@ package adventofcode.year2025
22
33import adventofcode.PuzzleBaseSpec
44
5- class Day05CafeteriaSpec : PuzzleBaseSpec (3 )
5+ class Day05CafeteriaSpec : PuzzleBaseSpec (3 , 14 )
You can’t perform that action at this time.
0 commit comments