36 lines
569 B
Go
36 lines
569 B
Go
package main
|
|
|
|
import (
|
|
"bufio"
|
|
"fmt"
|
|
"log"
|
|
"os"
|
|
"sort"
|
|
)
|
|
|
|
func main() {
|
|
file, err := os.Open("./input.txt")
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
defer file.Close()
|
|
|
|
scanner := bufio.NewScanner(file)
|
|
var sum int
|
|
var elves []int
|
|
for scanner.Scan() {
|
|
var num int
|
|
if len(scanner.Text()) <= 1 {
|
|
elves = append(elves, sum)
|
|
sum = 0
|
|
} else {
|
|
fmt.Sscanf(scanner.Text(), "%d", &num)
|
|
sum += num
|
|
}
|
|
}
|
|
elves = append(elves, sum)
|
|
sort.Ints(elves)
|
|
var total int = elves[len(elves)-1] + elves[len(elves)-2] + elves[len(elves)-3]
|
|
fmt.Println(total)
|
|
}
|