diff --git a/2017/src/main/scala/Day05.scala b/2017/src/main/scala/Day05.scala index 301ccff4..dafd03b0 100644 --- a/2017/src/main/scala/Day05.scala +++ b/2017/src/main/scala/Day05.scala @@ -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 @@ -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]") diff --git a/2021/src/main/scala/Day09.scala b/2021/src/main/scala/Day09.scala index bc4cf9ed..e0acdc2e 100644 --- a/2021/src/main/scala/Day09.scala +++ b/2021/src/main/scala/Day09.scala @@ -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]") diff --git a/2021/src/main/scala/Day10.scala b/2021/src/main/scala/Day10.scala index 023f9060..a62f8a92 100644 --- a/2021/src/main/scala/Day10.scala +++ b/2021/src/main/scala/Day10.scala @@ -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] = @@ -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]") diff --git a/2021/src/main/scala/Day19.scala b/2021/src/main/scala/Day19.scala index 035ad9f9..2f584992 100644 --- a/2021/src/main/scala/Day19.scala +++ b/2021/src/main/scala/Day19.scala @@ -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]") diff --git a/2021/src/main/scala/Day21.scala b/2021/src/main/scala/Day21.scala index 5f8cd776..fa8c9b08 100644 --- a/2021/src/main/scala/Day21.scala +++ b/2021/src/main/scala/Day21.scala @@ -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): @@ -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]") diff --git a/2021/src/main/scala/Day22.scala b/2021/src/main/scala/Day22.scala index f8af5b62..a8b55648 100644 --- a/2021/src/main/scala/Day22.scala +++ b/2021/src/main/scala/Day22.scala @@ -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): @@ -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]") diff --git a/2022/src/main/scala/Day12.scala b/2022/src/main/scala/Day12.scala index b689d02c..5c84575b 100644 --- a/2022/src/main/scala/Day12.scala +++ b/2022/src/main/scala/Day12.scala @@ -1,5 +1,4 @@ import scala.io.Source -import scala.util.Try object Day12 extends App: @@ -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() diff --git a/build.sbt b/build.sbt index 011568ff..9c44afcb 100644 --- a/build.sbt +++ b/build.sbt @@ -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,