Adding day 1

This commit is contained in:
Xavier Morel
2018-12-04 18:01:49 +01:00
parent 78e9d9aded
commit a467472e83
2 changed files with 35 additions and 0 deletions

12
day1/part1.scala Normal file
View File

@@ -0,0 +1,12 @@
/**
* Usage: scala part1.scala < input
*/
import scala.io.StdIn
import scala.collection.Iterator
println(Iterator
.continually(StdIn.readLine)
.takeWhile(_ != null)
.map(Integer.parseInt)
.sum)

23
day1/part2.scala Normal file
View File

@@ -0,0 +1,23 @@
/**
* Usage: scala part2.scala < input
*/
import scala.io.StdIn
import scala.collection.Iterator
val items = Stream
.continually(StdIn.readLine)
.takeWhile(_ != null)
.map(Integer.parseInt)
.toList
println(
Stream
.continually(items.toStream)
.flatten
.scanLeft(0)(_ + _)
.scanLeft(Map.empty[Int, Int]){case (acc, item) => acc + (item -> (acc.getOrElse(item, 0) + 1)) }
.filter(_.count(_._2 == 2) > 0)
.map(_.maxBy(_._2))
.head
)