8 mapset "github.com/deckarep/golang-set/v2"
12 func Part1(input string) int {
14 lines := strings.Split(input, "\n")
15 for _, line := range lines {
16 pairs := strings.Split(line, ",")
18 pair1 := strings.Split(pairs[0], "-")
19 pair2 := strings.Split(pairs[1], "-")
21 p1set := mapset.NewSet[int](Range(pair1[0], pair1[1])...)
22 p2set := mapset.NewSet[int](Range(pair2[0], pair2[1])...)
24 if p1set.IsSubset(p2set) || p2set.IsSubset(p1set) {
31 func Part2(input string) int {
33 lines := strings.Split(input, "\n")
34 for _, line := range lines {
35 pairs := strings.Split(line, ",")
37 pair1 := strings.Split(pairs[0], "-")
38 pair2 := strings.Split(pairs[1], "-")
40 p1set := mapset.NewSet[int](Range(pair1[0], pair1[1])...)
41 p2set := mapset.NewSet[int](Range(pair2[0], pair2[1])...)
43 if len(p1set.Intersect(p2set).ToSlice()) > 0 {
50 func Range(start string, end string)[]int {
51 s, _ := strconv.Atoi(start)
52 e, _ := strconv.Atoi(end)
55 for i := s; i <= e; i++ {