Piotr Czajkowski vor 2 Jahren
Ursprung
Commit
31684eb1d3
2 geänderte Dateien mit 26 neuen und 1 gelöschten Zeilen
  1. 26 1
      07/code.go
  2. 0 0
      07/input

+ 26 - 1
07/code.go

@@ -38,11 +38,36 @@ func readInput(file string) (map[int]int, []int) {
 	return crabs, orderedCrabs
 }
 
+func part1(crabs map[int]int, orderedCrabs []int) int {
+	shortest := 10000000
+
+	for _, crab := range orderedCrabs {
+		route := 0
+		for key, value := range crabs {
+			if key == crab {
+				continue
+			}
+
+			if key < crab {
+				route += (crab - key) * value
+			} else {
+				route += (key - crab) * value
+			}
+		}
+
+		if route < shortest {
+			shortest = route
+		}
+	}
+
+	return shortest
+}
+
 func main() {
 	if len(os.Args) < 2 {
 		log.Fatal("Please provide a file name as argument")
 	}
 
 	crabs, orderedCrabs := readInput(os.Args[1])
-	fmt.Println(crabs, orderedCrabs)
+	fmt.Println("Part1: ", part1(crabs, orderedCrabs))
 }

Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
07/input


Einige Dateien werden nicht angezeigt, da zu viele Dateien in diesem Diff geändert wurden.