jlelse
/
aoc21
Archived
1
Fork 0
This repository has been archived on 2024-01-02. You can view files and clone it, but cannot push or open issues or pull requests.
aoc21/01/main.go

48 lines
899 B
Go

package main
import (
"log"
"os"
"strconv"
"strings"
"github.com/thoas/go-funk"
)
func main() {
inputBytes, _ := os.ReadFile("input.txt")
inputs := strings.Split(string(inputBytes), "\n")
log.Println("Puzzle 1:", puzzle1(inputs))
log.Println("Puzzle 2:", puzzle2(inputs))
}
func puzzle1(inputs []string) int {
increased := 0
last := 0
for _, input := range inputs {
inputNo, _ := strconv.Atoi(input)
if last > 0 && inputNo > last {
increased++
}
last = inputNo
}
return increased
}
func puzzle2(inputs []string) int {
increased := 0
last3 := []int{0, 0, 0}
for _, input := range inputs {
inputNo, _ := strconv.Atoi(input)
new3 := append(last3[1:], inputNo)
newSum := funk.SumInt(new3)
lastSum := funk.SumInt(last3)
if !funk.ContainsInt(last3, 0) && !funk.ContainsInt(new3, 0) && newSum > lastSum {
increased++
}
last3 = new3
}
return increased
}