Browse Source

Solved part1

Piotr Czajkowski 2 years ago
parent
commit
31684eb1d3
2 changed files with 26 additions and 1 deletions
  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))
 }

File diff suppressed because it is too large
+ 0 - 0
07/input


Some files were not shown because too many files changed in this diff