35 lines
723 B
Scala
35 lines
723 B
Scala
package day02
|
|
|
|
class Day2 {
|
|
|
|
/** Find solution for part1 */
|
|
def solveP1(arr: Array[Int]): Int =
|
|
{
|
|
var i = 0
|
|
while (arr(i) == 1 || arr(i) == 2)
|
|
{
|
|
arr(i) match {
|
|
case 1 => arr(arr(i + 3)) = arr(arr(i + 1)) + arr(arr(i + 2)); i += 4
|
|
case 2 => arr(arr(i + 3)) = arr(arr(i + 1)) * arr(arr(i + 2)); i += 4
|
|
case _ => ()
|
|
}
|
|
}
|
|
arr(0)
|
|
}
|
|
|
|
/** Find fuel needed and recursive fuel */
|
|
def solveP2(arr:Array[Int]):(Int, Int) =
|
|
{
|
|
var tuple = (0, 0)
|
|
for (i <- 0 to 99; j <- 0 to 99)
|
|
{
|
|
val copy = arr.clone()
|
|
copy(1) = i
|
|
copy(2) = j
|
|
if (solveP1(copy) == 19690720) tuple = (i, j)
|
|
}
|
|
tuple
|
|
}
|
|
|
|
}
|