package aoc package day01 val dayNumber = "01" @main def part1: Unit = println(part1(loadInput(dayNumber))) @main def part2: Unit = println(part2(loadInput(dayNumber))) def part1(input: String): String = val Array(ls, rs) = input .split("\n") .map { case s"$left $right" => Array(left.toInt, right.toInt) } .transpose ls.sorted .zip(rs.sorted) .map { case (left, right) => Math.abs(right - left) } .sum .toString def part2(input: String): String = val Array(ls, rs) = input .split("\n") .map { case s"$left $right" => Array(left.toInt, right.toInt) } .transpose ls.map(n => n * rs.count(_ == n)).sum.toString