File tree Expand file tree Collapse file tree 1 file changed +9
-4
lines changed Expand file tree Collapse file tree 1 file changed +9
-4
lines changed Original file line number Diff line number Diff line change @@ -7,10 +7,10 @@ internal val caveMapSample = File("src/main/resources/2021/day12-sample.txt").re
7
7
8
8
fun main () {
9
9
part1(parseGraph(caveMapSample))
10
- // part1(parseGraph(caveMapInput))
10
+ part1(parseGraph(caveMapInput))
11
11
12
12
part2(parseGraph(caveMapSample))
13
- // part2(parseGraph(caveMapInput))
13
+ part2(parseGraph(caveMapInput))
14
14
}
15
15
16
16
private fun part1 (graph : Map <String , List <String >>) {
@@ -47,8 +47,13 @@ private fun dfsPart2(
47
47
}
48
48
49
49
return graph[cave]!!
50
- .filter { nextCave -> nextCave !in visited + cave || nextCave.isBigCave() }
51
- .flatMap { nextCave -> dfs(graph, cave = nextCave, visited = visited + cave) }
50
+ .filter { it != " start" }
51
+ .filter { nextCave ->
52
+ nextCave !in visited + cave ||
53
+ nextCave.isBigCave() ||
54
+ ! (visited + cave).filter { it.isSmallCave() }.groupingBy { it }.eachCount().any { it.value >= 2 }
55
+ }
56
+ .flatMap { nextCave -> dfsPart2(graph, cave = nextCave, visited = visited + cave) }
52
57
}
53
58
54
59
private fun dfs (
You can’t perform that action at this time.
0 commit comments