diff --git a/2019/2/scala.sc b/2019/2/scala.sc new file mode 100644 index 0000000..37075ca --- /dev/null +++ b/2019/2/scala.sc @@ -0,0 +1,44 @@ +import scala.io.Source + +var original = Source.fromFile(getClass.getResource("/input2.txt").getFile).mkString.split("\\D+").map(x => x.toInt) +original(1) = 12 +original(2) = 2 +var copy1 = original.clone() + +// 1 +def tapeTraversal1(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)) + case 2 => arr(arr(i + 3)) = arr(arr(i + 1)) * arr(arr(i + 2)) + case _ => () + } + i += 4 + } + arr(0) +} +val result1 = tapeTraversal1(copy1) + +// 2 +def bruteForce2(arr:Array[Int]):(Int, Int) = +{ + var tuple = (0, 0) + for (i <- 0 to 99; j <- 0 to 99) + { + var copy = arr.clone() + copy(1) = i + copy(2) = j + if (tapeTraversal1(copy) == 19690720) tuple = (i, j) + } + tuple +} + +val result2 = bruteForce2(original) + + + + +