Kaynağa Gözat

Solved part2

Piotr Czajkowski 1 yıl önce
ebeveyn
işleme
5b216009cf
1 değiştirilmiş dosya ile 24 ekleme ve 7 silme
  1. 24 7
      06/code.go

+ 24 - 7
06/code.go

@@ -11,9 +11,14 @@ import (
 const Time = "Time:      "
 const Distance = "Distance:  "
 
-func readInput(file *os.File) [][]int {
+type Paper struct {
+	matrix    [][]int
+	bigMatrix [][]int
+}
+
+func readInput(file *os.File) Paper {
 	scanner := bufio.NewScanner(file)
-	var matrix [][]int
+	var paper Paper
 
 	for scanner.Scan() {
 		line := scanner.Text()
@@ -33,11 +38,14 @@ func readInput(file *os.File) [][]int {
 		}
 
 		var numbers []int
+		var numberString string
 		for i := range parts {
 			if parts[i] == "" {
 				continue
 			}
 
+			numberString += parts[i]
+
 			var number int
 			n, err := fmt.Sscanf(parts[i], "%d", &number)
 			if n != 1 || err != nil {
@@ -47,13 +55,21 @@ func readInput(file *os.File) [][]int {
 			numbers = append(numbers, number)
 		}
 
-		matrix = append(matrix, numbers)
-		if len(matrix) == 2 {
+		var bigNumber int
+		n, err := fmt.Sscanf(numberString, "%d", &bigNumber)
+		if n != 1 || err != nil {
+			log.Fatalf("Failed to read number: %s\n%s", numberString, err)
+		}
+
+		paper.bigMatrix = append(paper.bigMatrix, []int{bigNumber})
+
+		paper.matrix = append(paper.matrix, numbers)
+		if len(paper.matrix) == 2 {
 			break
 		}
 	}
 
-	return matrix
+	return paper
 }
 
 func part1(matrix [][]int) int {
@@ -87,6 +103,7 @@ func main() {
 
 	}
 
-	matrix := readInput(file)
-	fmt.Println(part1(matrix))
+	paper := readInput(file)
+	fmt.Println("Part1:", part1(paper.matrix))
+	fmt.Println("Part2:", part1(paper.bigMatrix))
 }