Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 7 additions & 13 deletions 2017/src/main/scala/Day05.scala
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,14 @@ object Day05 extends App:
val day: String =
this.getClass.getName.filter(_.isDigit).mkString("")

val jumps: Array[Int] =
val jumps: Vector[Int] =
Source
.fromResource(s"input$day.txt")
.getLines
.map(_.trim.toInt)
.toArray
.toVector

case class CPU(mem: Array[Int], update: Int => Int, pc: Int = 0, steps: Int = 0):
case class CPU(mem: Vector[Int], update: Int => Int, pc: Int = 0, steps: Int = 0):
@tailrec
final def run: CPU =
mem.lift(pc) match
Expand All @@ -22,18 +22,12 @@ object Day05 extends App:
case Some(offset) =>
CPU(mem.updated(pc, update(offset)), update, pc + offset, steps + 1).run

val start1: Long =
System.currentTimeMillis

val answer1: Int =
CPU(jumps, offset => offset + 1).run.steps
val start1: Long = System.currentTimeMillis
val answer1: Int = CPU(jumps, offset => offset + 1).run.steps

println(s"Answer AOC 2017 day $day part 1: $answer1 [${System.currentTimeMillis - start1}ms]")

val start2: Long =
System.currentTimeMillis

val answer2: Int =
CPU(jumps, offset => if offset >= 3 then offset - 1 else offset + 1).run.steps

val start2: Long = System.currentTimeMillis
val answer2: Int = CPU(jumps, offset => if offset >= 3 then offset - 1 else offset + 1).run.steps
println(s"Answer AOC 2017 day $day part 2: $answer2 [${System.currentTimeMillis - start2}ms]")
2 changes: 1 addition & 1 deletion 2021/src/main/scala/Day09.scala
Original file line number Diff line number Diff line change
Expand Up @@ -72,4 +72,4 @@ object Day09 extends App:
.take(3)
.product

println(s"Answer AOC 2020 day $day part 2: $answer2 [${System.currentTimeMillis - start2}ms]")
println(s"Answer AOC 2021 day $day part 2: $answer2 [${System.currentTimeMillis - start2}ms]")
4 changes: 2 additions & 2 deletions 2021/src/main/scala/Day10.scala
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ object Day10 extends App:
.values
.sum

println(s"Answer AOC 2020 day $day part 1: $answer1 [${System.currentTimeMillis - start1}ms]")
println(s"Answer AOC 2021 day $day part 1: $answer1 [${System.currentTimeMillis - start1}ms]")

def incompletes(s: String): List[Char] =
def loop(todo: List[Char], stack: List[Char] = List.empty[Char]): List[Char] =
Expand Down Expand Up @@ -83,4 +83,4 @@ object Day10 extends App:

scores(scores.length / 2)

println(s"Answer AOC 2020 day $day part 1: $answer2 [${System.currentTimeMillis - start2}ms]")
println(s"Answer AOC 2021 day $day part 1: $answer2 [${System.currentTimeMillis - start2}ms]")
4 changes: 2 additions & 2 deletions 2021/src/main/scala/Day19.scala
Original file line number Diff line number Diff line change
Expand Up @@ -74,12 +74,12 @@ object Day19 extends App:
val start1 = System.currentTimeMillis
val (beacons, positions) = solve(scanners)
val answer1 = beacons.size
println(s"answer 1: $answer1 [${System.currentTimeMillis - start1}ms]")
println(s"Answer AOC 2021 day $day part 1: $answer1 [${System.currentTimeMillis - start1}ms]")


val start2 = System.currentTimeMillis
val answer2 = (for a <- positions ; b <- positions yield Vec3.distance(b, a)).max
println(s"answer 2: $answer2 [${System.currentTimeMillis - start2}ms]")
println(s"Answer AOC 2021 day $day part 2: $answer2 [${System.currentTimeMillis - start2}ms]")



Expand Down
4 changes: 2 additions & 2 deletions 2021/src/main/scala/Day21.scala
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ object Day21 extends App:

val start1 = System.currentTimeMillis
val answer1 = solve1(game1)
println(s"answer 1: $answer1 [${System.currentTimeMillis - start1}ms]")
println(s"Answer AOC 2021 day $day part 1: $answer1 [${System.currentTimeMillis - start1}ms]")


case class Pawn(pos: Int, score: Int = 0):
Expand Down Expand Up @@ -92,4 +92,4 @@ object Day21 extends App:

val start2 = System.currentTimeMillis
val answer2 = solve2(Pawn(pos = 7), Pawn(pos = 9))
println(s"answer 2: $answer2 [${System.currentTimeMillis - start2}ms]")
println(s"Answer AOC 2021 day $day part 2: $answer2 [${System.currentTimeMillis - start2}ms]")
4 changes: 2 additions & 2 deletions 2021/src/main/scala/Day22.scala
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ object Day22 extends App:

val start1 = System.currentTimeMillis
val answer1 = Cuboid.reboot(cuboidSteps).all.values.count(identity)
println(s"answer 1: $answer1 [${System.currentTimeMillis - start1}ms]")
println(s"Answer AOC 2021 day $day part 1: $answer1 [${System.currentTimeMillis - start1}ms]")


case class Cube(min: Pos, max: Pos):
Expand Down Expand Up @@ -145,4 +145,4 @@ object Day22 extends App:

val start2 = System.currentTimeMillis
val answer2 = Cube.reboot(cubeSteps)
println(s"answer 2: $answer2 [${System.currentTimeMillis - start2}ms]")
println(s"Answer AOC 2021 day $day part 2: $answer2 [${System.currentTimeMillis - start2}ms]")
3 changes: 1 addition & 2 deletions 2022/src/main/scala/Day12.scala
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import scala.io.Source
import scala.util.Try

object Day12 extends App:

Expand Down Expand Up @@ -105,7 +104,7 @@ object Day12 extends App:
distTo(from) = 0
val sourceDist = (from, distTo(from))
val sortByDist: Ordering[(Vertex, Int)] = (a, b) => a._2.compareTo(b._2)
val queue = mutable.PriorityQueue[(Vertex, Int)](sourceDist)(using sortByDist)
val queue = mutable.PriorityQueue[(Vertex, Int)](sourceDist)(using sortByDist.reverse)

while (queue.nonEmpty) {
val (minDestV, _) = queue.dequeue()
Expand Down
2 changes: 1 addition & 1 deletion build.sbt
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ lazy val aoc2022 = project.in(file("2022"))
lazy val aoc2023 = project.in(file("2023"))
lazy val aoc2024 = project.in(file("2024"))

lazy val root = (project in file("."))
lazy val aoc = (project in file("."))
.aggregate(
aoc2015,
aoc2016,
Expand Down