github.com/agrigoryan/aoc_2023_go@v0.0.0-20231216221323-4ace361ec685/day12/d12p2.go (about) 1 package day12 2 3 import ( 4 "fmt" 5 "log" 6 "strconv" 7 "strings" 8 9 "github.com/agrigoryan/aoc_2023_go/aocutils" 10 ) 11 12 func d12p2(input string) int { 13 lines := strings.Split(input, "\n") 14 15 sum := 0 16 for _, line := range lines { 17 parts := strings.Split(line, " ") 18 springs := parts[0] 19 series := aocutils.Map(strings.Split(parts[1], ","), func(s string) int { 20 res, err := strconv.Atoi(s) 21 if err != nil { 22 log.Fatalln(err) 23 } 24 return res 25 }) 26 newSeries := []int{} 27 newSprigns := springs 28 for i := 0; i < 5; i++ { 29 newSeries = append(newSeries, series...) 30 if i < 4 { 31 newSprigns += "?" + springs 32 } 33 } 34 35 sum += solveLine(newSprigns, newSeries) 36 fmt.Println(sum) 37 } 38 39 return sum 40 }