Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

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-
valneighbors=(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)

AltStyle によって変換されたページ (->オリジナル) /