Piotr Czajkowski пре 1 недеља
родитељ
комит
2cb134883a
1 измењених фајлова са 19 додато и 6 уклоњено
  1. 19 6
      08/code.go

+ 19 - 6
08/code.go

@@ -72,19 +72,32 @@ func part1(boxes []box) int {
 	}
 
 	var circuits []circuit
-	for _, item := range boxes {
-		if item.inCircuit {
+	for i := range boxes {
+		if boxes[i].inCircuit {
 			continue
 		}
 
-		if boxes[item.best].best == item.id {
-			item.inCircuit = true
-			boxes[item.best].inCircuit = true
+		if boxes[boxes[i].best].best == boxes[i].id {
+			boxes[i].inCircuit = true
+			boxes[boxes[i].best].inCircuit = true
 
-			set := circuit{first: item.id, second: item.best, boxes: []box{item, boxes[item.best]}}
+			set := circuit{first: boxes[i].id, second: boxes[i].best, boxes: []box{boxes[i], boxes[boxes[i].best]}}
 			circuits = append(circuits, set)
 		}
 	}
+
+	for _, item := range boxes {
+		if item.inCircuit {
+			continue
+		}
+
+		for i := range circuits {
+			if item.best == circuits[i].first || item.best == circuits[i].second {
+				circuits[i].boxes = append(circuits[i].boxes, item)
+				break
+			}
+		}
+	}
 	fmt.Println(circuits)
 
 	return result