todd.ginsberg
12/18/2018, 1:08 AMMarcin Wisniowski
12/18/2018, 7:31 AMlittlelightcz
12/18/2018, 12:27 PMtodd.ginsberg
12/18/2018, 9:59 PMtodd.ginsberg
12/19/2018, 4:51 PMorangy
Joris PZ
12/20/2018, 6:54 AMMarcin Wisniowski
12/20/2018, 11:19 AMtodd.ginsberg
12/20/2018, 8:04 PMPoint
class that I just reused.
class Day20(rawInput: String) {
private val grid: Map<Point, Int> = parseGrid(rawInput)
fun solvePart1(): Int =
grid.maxBy { it.value }!!.value
fun solvePart2(): Int =
grid.count { it.value >= 1000 }
private fun parseGrid(input: String): Map<Point, Int> {
val grid = mutableMapOf(startingPoint to 0)
val stack = ArrayDeque<Point>()
var current = startingPoint
input.forEach {
when (it) {
'(' -> stack.push(current)
')' -> current = stack.pop()
'|' -> current = stack.peek()
in movementRules -> {
// If we are moving to a spot we haven't seen before, we can
// record this as a new distance.
val nextDistance = grid.getValue(current) + 1
current = movementRules.getValue(it).invoke(current)
if (current !in grid) grid[current] = nextDistance
}
}
}
return grid
}
companion object {
private val startingPoint = Point(0, 0)
private val movementRules = mapOf(
'N' to Point::up,
'S' to Point::down,
'E' to Point::right,
'W' to Point::left
)
}
}
karelpeeters
12/21/2018, 12:27 AM4
? The question is
How many rooms have a shortest path from your current location that pass through at least 1000 doors?
Marcin Wisniowski
12/21/2018, 7:13 AMandyb
12/21/2018, 8:27 AMRostyslav
12/21/2018, 10:47 AMSiebelsTim
12/21/2018, 1:39 PMGerard Klijs
12/22/2018, 5:33 PMJoris PZ
12/22/2018, 8:45 PM1036/159 ms
, JS 1876/1058 ms
. Native did not finish with exit code -1073741819, which seems to be some sort of access violationandyb
12/22/2018, 8:45 PMorangy
todd.ginsberg
12/23/2018, 5:27 PMn3o59hf
12/23/2018, 11:53 PMkarelpeeters
12/24/2018, 1:23 PMsortedBy
, sumBy
, filter
, maxWith
, takeIf
etc! (spoiler in thread)todd.ginsberg
12/24/2018, 10:08 PMRostyslav
12/25/2018, 5:34 AMorangy
todd.ginsberg
01/14/2019, 6:17 PMkarelpeeters
10/30/2019, 10:37 PMtodd.ginsberg
10/31/2019, 8:09 PMJoris PZ
10/31/2019, 8:16 PMkarelpeeters
11/22/2019, 10:18 PMKroppeb
11/28/2019, 5:46 PM