aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/Day10.kt42
-rw-r--r--src/Day13.kt6
-rw-r--r--src/Day15.kt2
-rw-r--r--src/Day17.kt3
4 files changed, 27 insertions, 26 deletions
diff --git a/src/Day10.kt b/src/Day10.kt
index 9985014..8f73f2f 100644
--- a/src/Day10.kt
+++ b/src/Day10.kt
@@ -1,4 +1,4 @@
-enum class ChunkDelimeter(val open: Char, val close: Char) {
+enum class ChunkDelimiter(val open: Char, val close: Char) {
Parentheses('(', ')'),
Brackets('[', ']'),
Braces('{', '}'),
@@ -7,48 +7,48 @@ enum class ChunkDelimeter(val open: Char, val close: Char) {
companion object {
fun isOpening(character: Char): Boolean = values().any { it.open == character }
fun isClosing(character: Char): Boolean = values().any { it.close == character }
- fun from(character: Char): ChunkDelimeter = values().find { it.open == character || it.close == character }!!
+ fun from(character: Char): ChunkDelimiter = values().find { it.open == character || it.close == character }!!
}
}
sealed class SyntaxError {
object None : SyntaxError()
- class IncompleteLine(private val stack: ArrayDeque<ChunkDelimeter>) : SyntaxError() {
+ class IncompleteLine(private val stack: ArrayDeque<ChunkDelimiter>) : SyntaxError() {
val score: Long
get() {
- fun delimeterValue(delimeter: ChunkDelimeter): Int = when (delimeter) {
- ChunkDelimeter.Parentheses -> 1
- ChunkDelimeter.Brackets -> 2
- ChunkDelimeter.Braces -> 3
- ChunkDelimeter.Angled -> 4
+ fun delimiterValue(delimiter: ChunkDelimiter): Int = when (delimiter) {
+ ChunkDelimiter.Parentheses -> 1
+ ChunkDelimiter.Brackets -> 2
+ ChunkDelimiter.Braces -> 3
+ ChunkDelimiter.Angled -> 4
}
- return stack.fold(0) { acc, elem -> acc * 5 + delimeterValue(elem) }
+ return stack.fold(0) { acc, elem -> acc * 5 + delimiterValue(elem) }
}
}
- class CorruptedLine(private val invalidDelimeter: ChunkDelimeter) : SyntaxError() {
+ class CorruptedLine(private val invalidDelimiter: ChunkDelimiter) : SyntaxError() {
val score: Int
- get() = when (invalidDelimeter) {
- ChunkDelimeter.Parentheses -> 3
- ChunkDelimeter.Brackets -> 57
- ChunkDelimeter.Braces -> 1197
- ChunkDelimeter.Angled -> 25137
+ get() = when (invalidDelimiter) {
+ ChunkDelimiter.Parentheses -> 3
+ ChunkDelimiter.Brackets -> 57
+ ChunkDelimiter.Braces -> 1197
+ ChunkDelimiter.Angled -> 25137
}
}
}
fun parse(line: String): SyntaxError {
- val stack = ArrayDeque<ChunkDelimeter>()
+ val stack = ArrayDeque<ChunkDelimiter>()
for (char in line) {
when {
- ChunkDelimeter.isOpening(char) -> stack.addFirst(ChunkDelimeter.from(char))
- ChunkDelimeter.isClosing(char) -> {
- val closingDelimeter = ChunkDelimeter.from(char)
- if (stack.first() == closingDelimeter) {
+ ChunkDelimiter.isOpening(char) -> stack.addFirst(ChunkDelimiter.from(char))
+ ChunkDelimiter.isClosing(char) -> {
+ val closingDelimiter = ChunkDelimiter.from(char)
+ if (stack.first() == closingDelimiter) {
stack.removeFirst()
} else {
- return SyntaxError.CorruptedLine(closingDelimeter)
+ return SyntaxError.CorruptedLine(closingDelimiter)
}
}
}
diff --git a/src/Day13.kt b/src/Day13.kt
index f37c527..c8bb8c6 100644
--- a/src/Day13.kt
+++ b/src/Day13.kt
@@ -16,7 +16,7 @@ sealed class FoldCommand {
.toSet()
}
- class AlongY(val y: Int) : FoldCommand() {
+ class AlongY(private val y: Int) : FoldCommand() {
override fun dispatch(dots: Set<Pos2D>): Set<Pos2D> = dots
.filter { it.y != y }
.map {
@@ -62,9 +62,7 @@ fun main() {
fun part1(input: List<String>): Int {
val (dots, commands) = parseOrigami(input)
- val res = commands.first().dispatch(dots).size
-
- return res
+ return commands.first().dispatch(dots).size
}
fun part2(input: List<String>): String {
diff --git a/src/Day15.kt b/src/Day15.kt
index 763f723..abb4bfc 100644
--- a/src/Day15.kt
+++ b/src/Day15.kt
@@ -9,7 +9,7 @@ class CustomPriorityQueue<T>(private val array: Array<T>, private val comparator
private fun indexOfStartingFrom(elem: T, start: Int): Int {
for (i in (start until array.size)) {
- if (i == elem) {
+ if (array[i] == elem) {
return i
}
}
diff --git a/src/Day17.kt b/src/Day17.kt
new file mode 100644
index 0000000..32f47fe
--- /dev/null
+++ b/src/Day17.kt
@@ -0,0 +1,3 @@
+fun main() {
+
+}