23 lines
650 B
Scala
23 lines
650 B
Scala
package aoc.y2018
|
|
|
|
import aoc._
|
|
|
|
object Day02 extends Day {
|
|
|
|
override def part1(input: String): String = {
|
|
val lines = input.lines.toList
|
|
val groups = lines.map(_.groupBy(identity))
|
|
val twos = groups.count(_.values.exists(_.length == 2))
|
|
val threes = groups.count(_.values.exists(_.length == 3))
|
|
(twos * threes).toString
|
|
}
|
|
|
|
override def part2(input: String): String = {
|
|
val lines = input.lines.toList
|
|
val distanceMap = lines.flatMap(s => lines.map(c => ((s, c), levenshtein(s, c)))).toMap
|
|
val ((s, c), _) = distanceMap.filter {case (_, d) => d > 0 }.minBy { case (_, d) => d }
|
|
s.intersect(c).mkString
|
|
}
|
|
|
|
}
|