|
@@ -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))
|
|
|
}
|