Skip to content

Commit 23eaa60

Browse files
committed
2025 Day 2 finished
1 parent 80fcd83 commit 23eaa60

File tree

2 files changed

+19
-19
lines changed

2 files changed

+19
-19
lines changed

src/main/kotlin/de/jball/aoc2025/day02/Day02.kt

Lines changed: 19 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -13,30 +13,31 @@ class Day02(test: Boolean = false): AdventOfCodeDay<Long>(test, 1227775554L, 417
1313

1414
override fun part1(): Long {
1515
return ranges.sumOf { range ->
16-
sumOfInvalidIds(range, { idString ->
17-
val windowSize = idString.length / 2 + idString.length % 2
18-
windowSize..windowSize
19-
})
16+
sumOfInvalidIds(range) { id ->
17+
val idString = id.toString()
18+
if (idString.length % 2 != 0)
19+
false
20+
else
21+
idString.take(idString.length / 2) == idString.substring(idString.length / 2)
22+
}
2023
}
2124
}
2225

23-
private fun sumOfInvalidIds(range: LongRange, windowFunction: (id: String) -> IntRange): Long = range.map { number ->
24-
number.toString()
25-
}.filter { idString ->
26-
windowFunction(idString)
27-
.any { windowSize ->
28-
// if the different parts of the id string are all equal, then the distinct call would result in a list of size 1.
29-
idString.windowed(windowSize, windowSize, true).distinct().size == 1
30-
}
31-
}.sumOf { numberString ->
32-
numberString.toLong()
33-
}
26+
private fun sumOfInvalidIds(range: LongRange, idTest: (Long) -> Boolean): Long = range
27+
.filter { id ->
28+
idTest(id)
29+
}.sumOf { numberString ->
30+
numberString
31+
}
3432

3533
override fun part2(): Long {
3634
return ranges.sumOf { range ->
37-
sumOfInvalidIds(range, { idString ->
38-
1..(idString.length / 2 + idString.length % 2)
39-
})
35+
sumOfInvalidIds(range) { id ->
36+
val idString = id.toString()
37+
(1..idString.length/2).any { windowSize ->
38+
idString.windowed(windowSize, windowSize, true).distinct().size == 1
39+
}
40+
}
4041
}
4142
}
4243

src/test/kotlin/de/jball/aoc2025/Tests2025.kt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ class Tests2025 {
1111
}
1212

1313
@Test
14-
@kotlin.test.Ignore
1514
fun day02() {
1615
Day02(true).run()
1716
}

0 commit comments

Comments
 (0)