Day 13: use built in transpose
This commit is contained in:
parent
ff834ac43a
commit
d5e1e549d6
1 changed files with 2 additions and 7 deletions
|
|
@ -9,11 +9,6 @@ val dayNumber = "13"
|
||||||
@main def part2: Unit =
|
@main def part2: Unit =
|
||||||
println(part2(loadInput(dayNumber)))
|
println(part2(loadInput(dayNumber)))
|
||||||
|
|
||||||
def transpose(grid: List[String]): List[String] =
|
|
||||||
List.tabulate(grid.head.length)(x =>
|
|
||||||
Array.tabulate(grid.length)(y => grid(y)(x)).mkString
|
|
||||||
)
|
|
||||||
|
|
||||||
def part1(input: String): String =
|
def part1(input: String): String =
|
||||||
def findReflection(rows: List[String]): Option[Int] =
|
def findReflection(rows: List[String]): Option[Int] =
|
||||||
(1 until rows.length).find(i =>
|
(1 until rows.length).find(i =>
|
||||||
|
|
@ -27,7 +22,7 @@ def part1(input: String): String =
|
||||||
.flatMap(pattern =>
|
.flatMap(pattern =>
|
||||||
findReflection(pattern)
|
findReflection(pattern)
|
||||||
.map(_ * 100)
|
.map(_ * 100)
|
||||||
.orElse(findReflection(transpose(pattern)))
|
.orElse(findReflection(pattern.transpose.map(_.mkString)))
|
||||||
)
|
)
|
||||||
.sum
|
.sum
|
||||||
.toString
|
.toString
|
||||||
|
|
@ -48,7 +43,7 @@ def part2(input: String): String =
|
||||||
.flatMap(pattern =>
|
.flatMap(pattern =>
|
||||||
findReflection(pattern)
|
findReflection(pattern)
|
||||||
.map(_ * 100)
|
.map(_ * 100)
|
||||||
.orElse(findReflection(transpose(pattern)))
|
.orElse(findReflection(pattern.transpose.map(_.mkString)))
|
||||||
)
|
)
|
||||||
.sum
|
.sum
|
||||||
.toString
|
.toString
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue