Skip to content

Commit aa677e3

Browse files
authored
Merge pull request #19 from sraaphorst/D11
Day 11 complete.
2 parents e09fde7 + 0c03871 commit aa677e3

File tree

20 files changed

+139
-98
lines changed

20 files changed

+139
-98
lines changed

src/main/kotlin/common/aocreader/aocreader.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
// Advent of Code 2024
2+
// By Sebastian Raaphorst, 2024.
3+
14
package common.aocreader
25

36
import java.net.HttpURLConnection

src/main/kotlin/common/collectionops/collectionops.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Advent of Code
1+
// Advent of Code 2024
22
// By Sebastian Raaphorst, 2024.
33

44
package common.collectionops

src/main/kotlin/common/input.kt

Lines changed: 0 additions & 18 deletions
This file was deleted.

src/main/kotlin/common/intpos2d/intpos2d.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
// Advent of Code 2024
2+
// By Sebastian Raaphorst, 2024.
3+
14
package common.intpos2d
25

36
typealias IntPos2D = Pair<Int, Int>

src/main/kotlin/common/parsing/parsing.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Advent of Code
1+
// Advent of Code 2024
22
// By Sebastian Raaphorst, 2024.
33

44
package common.parsing
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
// Advent of Code 2024
2+
// By Sebastian Raaphorst, 2024.
3+
4+
package common.runner
5+
6+
inline fun <T> timedFunction(functionName: String, block: () -> T): T {
7+
val startTime = System.nanoTime()
8+
val result = block()
9+
val endTime = System.nanoTime()
10+
println("$functionName: $result (${(endTime - startTime) / 1_000_000.0} ms)")
11+
return result
12+
}

src/main/kotlin/common/stringops.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Advent of Code
1+
// Advent of Code 2024
22
// By Sebastian Raaphorst, 2024.
33

44
package common

src/main/kotlin/day01/day01.kt

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ package day01
66
import common.aocreader.fetchAdventOfCodeInput
77
import common.parsing.parseColumns
88
import common.collectionops.toFrequencyMap
9+
import common.runner.timedFunction
910
import kotlin.math.abs
1011

1112
fun answer1(input: String): Int =
@@ -25,12 +26,7 @@ fun answer2(input: String): Int =
2526

2627
fun main() {
2728
val input = fetchAdventOfCodeInput(2024, 1)
28-
2929
println("--- Day 1: Historian Hysteria ---")
30-
31-
// Answer 1: 2031679
32-
println("Part 1: ${answer1(input)}")
33-
34-
// Answer 2: 19678534
35-
println("Part 2: ${answer2(input)}")
30+
timedFunction("Part 1") { answer1(input) } // 2031679
31+
timedFunction("Part 2") { answer2(input) } // 19678534
3632
}

src/main/kotlin/day02/day02.kt

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ package day02
66
import common.aocreader.fetchAdventOfCodeInput
77
import common.collectionops.allListDrops
88
import common.parsing.parseGrid
9+
import common.runner.timedFunction
910

1011
private const val Lower = 1
1112
private const val Upper = 3
@@ -30,12 +31,7 @@ fun answer2(input: String): Int =
3031

3132
fun main() {
3233
val input = fetchAdventOfCodeInput(2024, 2)
33-
3434
println("--- Day 2: Red-Nosed Reports ---")
35-
36-
// Answer 1: 379
37-
println("Part 1: ${answer1(input)}")
38-
39-
// Answer 2: 430
40-
println("Part 2: ${answer2(input)}")
35+
timedFunction("Part 1") { answer1(input) } // 379
36+
timedFunction("Part 2") { answer2(input) } // 430
4137
}

src/main/kotlin/day03/day03.kt

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
package day03
55

66
import common.aocreader.fetchAdventOfCodeInput
7+
import common.runner.timedFunction
78

89
/**
910
* We want to turn off processing for substrings of the form:
@@ -31,12 +32,7 @@ fun answer2(input: String): Int =
3132

3233
fun main() {
3334
val input = fetchAdventOfCodeInput(2024, 3)
34-
3535
println("--- Day 3: Mull It Over ---")
36-
37-
// Answer 1: 173785482
38-
println("Part 1: ${answer1(input)}")
39-
40-
// Answer 2: 83158140
41-
println("Part 2: ${answer2(input)}")
36+
timedFunction("Part 1") { answer1(input) } // 173785482
37+
timedFunction("Part 2") { answer2(input) } // 83158140
4238
}

0 commit comments

Comments
 (0)