Day 7 part 1 (part 2 kinda stupid)
This commit is contained in:
parent
17e061d2e1
commit
0664894ef2
2 changed files with 34 additions and 0 deletions
33
aoc/src/main/scala/aoc/y2019/Day07.scala
Normal file
33
aoc/src/main/scala/aoc/y2019/Day07.scala
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
package aoc.y2019
|
||||||
|
|
||||||
|
import aoc.Day
|
||||||
|
|
||||||
|
import scala.annotation.tailrec
|
||||||
|
|
||||||
|
object Day07 extends Day {
|
||||||
|
|
||||||
|
@tailrec def runAmplifiers(machine: Intcode.Machine, order: IndexedSeq[Int], input: Int = 0): Int = {
|
||||||
|
if(order.isEmpty) {
|
||||||
|
input
|
||||||
|
} else {
|
||||||
|
val firstInput = order.head
|
||||||
|
val secondInput = input
|
||||||
|
val runAmplifier = for {
|
||||||
|
_ <- Intcode.input(firstInput)
|
||||||
|
_ <- Intcode.input(secondInput)
|
||||||
|
ran <- Intcode.run
|
||||||
|
} yield ran
|
||||||
|
val output = runAmplifier.runS(machine).value.output.head
|
||||||
|
runAmplifiers(machine, order.tail, output)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
override def part1(input: String): String = {
|
||||||
|
val memory = input.split(",").toVector.map(_.toInt)
|
||||||
|
val initialState = Intcode.Machine(memory)
|
||||||
|
val maximumSignal = (0 to 4).permutations.map(runAmplifiers(initialState, _)).max
|
||||||
|
maximumSignal.toString
|
||||||
|
}
|
||||||
|
|
||||||
|
override def part2(input: String): String = ???
|
||||||
|
}
|
|
@ -9,6 +9,7 @@ package object y2019 extends Year {
|
||||||
"4" -> Day04,
|
"4" -> Day04,
|
||||||
"5" -> Day05,
|
"5" -> Day05,
|
||||||
"6" -> Day06,
|
"6" -> Day06,
|
||||||
|
"7" -> Day07,
|
||||||
)
|
)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue