Compare commits

..

2 Commits

Author SHA1 Message Date
Araozu a7e0e74fee day 1 part 2 2023-10-31 21:14:53 -05:00
Araozu a6f758277f day 1 part 1 2023-10-31 20:57:58 -05:00
3 changed files with 50 additions and 2 deletions

View File

@ -1,5 +1,6 @@
import scala.util.Failure
import scala.util.Success
import scala.util.Try
object Day01 extends Solution:
override def part_01() =
@ -8,7 +9,45 @@ object Day01 extends Solution:
case Failure(ex) =>
return "Error opening file: " + ex.getMessage()
"part 1 :D"
var max_calories_amount = 0
var current_sum = 0
for line <- file.getLines() do
Try(line.toInt).toOption match
case Some(value) => current_sum += value
case None =>
if current_sum > max_calories_amount then
max_calories_amount = current_sum
current_sum = 0
"part 1: " + max_calories_amount.toString()
override def part_02() =
"part 2 :O"
val file = this.read_input("01") match
case Success(f) => f
case Failure(ex) =>
return "Error opening file: " + ex.getMessage()
var (max1, max2, max3) = (0, 0, 0)
var current_sum = 0
for line <- file.getLines() do
Try(line.toInt).toOption match
case Some(value) => current_sum += value
case None =>
if current_sum > max1 then
max3 = max2
max2 = max1
max1 = current_sum
else if current_sum > max2 then
max3 = max2
max2 = current_sum
else if current_sum > max3 then
max3 = current_sum
current_sum = 0
"part 2: " + (max1 + max2 + max3).toString()

View File

@ -5,4 +5,6 @@ import scala.util.Random
@main def hello: Unit =
println("Advent of code 2022 with Scala")
println(Day01.part_01())
println(Day01.part_02())

View File

@ -18,4 +18,11 @@ trait Solution:
catch
case ex: java.io.FileNotFoundException =>
Failure(ex)
def read_test_input(day: String): Try[BufferedSource] =
try
Success(Source.fromFile(s"./inputs/day$day.test.txt"))
catch
case ex: java.io.FileNotFoundException =>
Failure(ex)