Skip to content

Commit 0cc33d9

Browse files
committed
Solved day11 part 2
1 parent 781de0e commit 0cc33d9

File tree

3 files changed

+12
-11
lines changed

3 files changed

+12
-11
lines changed

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ plugins {
44

55
// project meta data
66
group 'de.havox_design.aoc2023'
7-
version '0.10.5'
7+
version '0.10.6'
88

99
// Switch to gradle "all" distribution.
1010
wrapper {

day11/src/main/kotlin/de/havox_design/aoc2023/day11/Day11.kt

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,10 @@ class Day11(private var filename: String) {
88
fun solvePart1(): Long =
99
processSumOfAllDistances(getResourceAsText(filename))
1010

11-
fun solvePart2(): Long =
12-
0L
11+
fun solvePart2(expansion: Long = 1000000): Long =
12+
processSumOfAllDistances(getResourceAsText(filename), expansion)
1313

14-
private fun processSumOfAllDistances(input: List<String>): Long {
14+
private fun processSumOfAllDistances(input: List<String>, expansion: Long = 2): Long {
1515
val galaxies = input
1616
.flatMapIndexed { y, s ->
1717
s.mapIndexed { x, c -> if (c == ICON_GALAXY.first()) Pair(y.toLong(), x.toLong()) else null }
@@ -32,7 +32,7 @@ class Day11(private var filename: String) {
3232
.contains(ICON_GALAXY)
3333
}
3434
.map { it.index.toLong() }
35-
val expandedGalaxies = calculateUniverseExpansion(galaxies, emptyRows, emptyColumns)
35+
val expandedGalaxies = calculateUniverseExpansion(galaxies, emptyRows, emptyColumns, expansion)
3636
val galaxyPairs = expandedGalaxies
3737
.flatMapIndexed { index, galaxy ->
3838
expandedGalaxies
@@ -48,12 +48,13 @@ class Day11(private var filename: String) {
4848
private fun calculateUniverseExpansion(
4949
galaxies: List<Pair<Long, Long>>,
5050
emptyRows: List<Long>,
51-
emptyColumns: List<Long>
51+
emptyColumns: List<Long>,
52+
expansion: Long = 2
5253
) =
5354
galaxies
5455
.map {
55-
Pair(it.first + emptyRows.count { r -> r < it.first },
56-
it.second + emptyColumns.count { c -> c < it.second })
56+
Pair(it.first + emptyRows.count { r -> r < it.first } * (expansion - 1),
57+
it.second + emptyColumns.count { c -> c < it.second } * (expansion - 1))
5758
}
5859

5960
private fun calculateDistance(galaxy1: Pair<Long, Long>, galaxy2: Pair<Long, Long>): Long {

day11/src/test/kotlin/de/havox_design/aoc2023/day11/Day11Test.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ class Day11Test {
2020

2121
@ParameterizedTest
2222
@MethodSource("getDataForTestSolvePart2")
23-
fun testSolvePart2(filename: String, expectedResult: Long, expansion: Int) =
23+
fun testSolvePart2(filename: String, expectedResult: Long, expansion: Long) =
2424
Day11(filename).solvePart2(expansion).shouldBe(expectedResult)
2525

2626
companion object {
@@ -33,8 +33,8 @@ class Day11Test {
3333
@JvmStatic
3434
private fun getDataForTestSolvePart2(): Stream<Arguments> =
3535
Stream.of(
36-
Arguments.of("sample.txt", 1030L, 10),
37-
Arguments.of("sample.txt", 8410L, 100)
36+
Arguments.of("sample.txt", 1030L, 10L),
37+
Arguments.of("sample.txt", 8410L, 100L)
3838
)
3939
}
4040
}

0 commit comments

Comments
 (0)