advent-of-code/2019/Scala/day01/Day1.scala
2019-12-06 22:17:43 +01:00

35 lines
806 B
Scala

package day01
import kamlib.{Reader, Wrapper}
class Day1 {
/** Find fuel needed */
def solveP1(input: List[Int]): Int =
input.foldLeft (0) { (acc, i) => acc + (i/3-2)}
/** Find fuel needed and recursive fuel */
def solveP2(input: List[Int]): Int =
{
@scala.annotation.tailrec
def findRecursiveFuel(fuel: Int, acc: Int): Int =
{
if (fuel <= 0) acc
else findRecursiveFuel((fuel/3)-2, fuel+acc)
}
input.foldLeft (0) { (acc, i) => acc + findRecursiveFuel((i/3)-2, 0)}
}
/** MAIN */
def main(args: Array[String]): Unit =
{
val input: List[Int] = Reader.readList("/input1.txt").map(_.toInt)
println("Part 1")
Wrapper(solveP1(input)).print()
println("Part 2")
Wrapper(solveP2(input)).print()
}
}