Ver Fonte

Solved part1

Piotr Czajkowski há 3 anos atrás
pai
commit
a42204b8ed
2 ficheiros alterados com 27 adições e 1 exclusões
  1. 24 1
      day13/day13.go
  2. 3 0
      day13/input.txt

+ 24 - 1
day13/day13.go

@@ -63,6 +63,27 @@ func readData(file *os.File) (schedule, error) {
 	return data, nil
 }
 
+func calculateTimes(data schedule) schedule {
+	for key, _ := range data.buses {
+		data.buses[key] = key - (data.timestamp % key)
+	}
+
+	return data
+}
+
+func findEarliestBus(data schedule) int64 {
+	var earliest int64 = data.timestamp
+	var earliestID int64 = 0
+	for key, value := range data.buses {
+		if value < earliest {
+			earliest = value
+			earliestID = key
+		}
+	}
+
+	return earliest * earliestID
+}
+
 func main() {
 	if len(os.Args) < 2 {
 		log.Fatal("You need to specify a file!")
@@ -78,5 +99,7 @@ func main() {
 	if err != nil {
 		log.Fatalf("Failed to read data: %s\n", err)
 	}
-	fmt.Println(data)
+
+	data = calculateTimes(data)
+	fmt.Println("Part1:", findEarliestBus(data))
 }

+ 3 - 0
day13/input.txt

@@ -0,0 +1,3 @@
+1000390
+23,x,x,x,x,x,x,x,x,x,x,x,x,41,x,x,x,x,x,x,x,x,x,383,x,x,x,x,x,x,x,x,x,x,x,x,13,17,x,x,x,x,19,x,x,x,x,x,x,x,x,x,29,x,503,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,x,37
+