Skip to content

Commit 9c202dd

Browse files
committed
Clean up 2024 day 23
1 parent c2d2f77 commit 9c202dd

File tree

1 file changed

+8
-10
lines changed

1 file changed

+8
-10
lines changed

src/main/scala/eu/sim642/adventofcode2024/Day23.scala

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,11 @@ object Day23 {
77
type Computer = String
88
type Edge = (Computer, Computer)
99

10-
def find3Cliques(edges: Set[Edge]): Set[Set[Computer]] = {
11-
val neighbors = (edges ++ edges.map(_.swap)).groupMap(_._1)(_._2)
10+
def edges2neighbors(edges: Set[Edge]): Map[Computer, Set[Computer]] =
11+
(edges ++ edges.map(_.swap)).groupMap(_._1)(_._2)
1212

13+
def find3Cliques(edges: Set[Edge]): Set[Set[Computer]] = {
14+
val neighbors = edges2neighbors(edges)
1315
for {
1416
(from, to) <- edges
1517
third <- neighbors(from) & neighbors(to)
@@ -18,15 +20,11 @@ object Day23 {
1820

1921
def count3CliquesT(edges: Set[Edge]): Int = find3Cliques(edges).count(_.exists(_.startsWith("t")))
2022

21-
def maximumClique(edges: Set[Edge]): Set[Computer] = {
22-
val neighbors = (edges ++ edges.map(_.swap)).groupMap(_._1)(_._2)
23-
BronKerbosch.maximumClique(neighbors)
24-
}
23+
def maximumClique(edges: Set[Edge]): Set[Computer] =
24+
BronKerbosch.maximumClique(edges2neighbors(edges))
2525

26-
def lanPartyPassword(edges: Set[Edge]): String = {
27-
val clique = maximumClique(edges)
28-
clique.toSeq.sorted.mkString(",")
29-
}
26+
def lanPartyPassword(edges: Set[Edge]): String =
27+
maximumClique(edges).toSeq.sorted.mkString(",")
3028

3129
def parseEdge(s: String): Edge = s match {
3230
case s"$from-$to" => (from, to)

0 commit comments

Comments
 (0)