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 }