Files
advent-of-code/dayone.go
2023-07-12 08:59:45 -05:00

91 lines
1.2 KiB
Go

package main
import (
"fmt"
"math"
"strconv"
"strings"
)
func dayOne(input string) (maxCalories int) {
// split input by newlines
var eachPart = strings.Split(input, "\n")
// trim all remaining whitespace
for i := range eachPart {
eachPart[i] = strings.TrimSpace(eachPart[i])
}
// assign a max value and a current value
maxCalories = 0
temp := 0
for i := 0; i < len(eachPart); i++ {
// this indicates we have reached the end of each elf's snack stash
if eachPart[i] == "" {
// use the max between curent temp value and the current max value found
maxCalories = int(math.Max(float64(maxCalories), float64(temp)))
// reassign temp to zero and start again
temp = 0
continue
}
// string to int conversion
partToInt, err := strconv.Atoi(eachPart[i])
if err != nil {
panic(err)
}
// add the result to our current working total
temp += partToInt
}
return
}
func main() {
var result int;
var input string;
input =
`1000
2000
3000
4000
5000
6000
7000
8000
9000
10000`
result = dayOne(input)
fmt.Println(result)
input =
`
245
256
939
-12039
4949
2
2
2
`
result = dayOne(input)
fmt.Println(result)
}