init, day one solution
This commit is contained in:
21
.gitignore
vendored
Normal file
21
.gitignore
vendored
Normal file
@@ -0,0 +1,21 @@
|
||||
# If you prefer the allow list template instead of the deny list, see community template:
|
||||
# https://github.com/github/gitignore/blob/main/community/Golang/Go.AllowList.gitignore
|
||||
#
|
||||
# Binaries for programs and plugins
|
||||
*.exe
|
||||
*.exe~
|
||||
*.dll
|
||||
*.so
|
||||
*.dylib
|
||||
|
||||
# Test binary, built with `go test -c`
|
||||
*.test
|
||||
|
||||
# Output of the go coverage tool, specifically when used with LiteIDE
|
||||
*.out
|
||||
|
||||
# Dependency directories (remove the comment below to include it)
|
||||
# vendor/
|
||||
|
||||
# Go workspace file
|
||||
go.work
|
||||
90
dayone.go
Normal file
90
dayone.go
Normal file
@@ -0,0 +1,90 @@
|
||||
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)
|
||||
}
|
||||
Reference in New Issue
Block a user