package day17 import ( "fmt" "sort" "tools" ) func getCombinations(containers []int, sum int) (combinations [][]int) { for i, c := range containers { if c > sum { break } else if c == sum { return [][]int{{c}} } else if i == len(containers)-1 { break } subCombinations := getCombinations(containers[i:], sum-c) for _, v := range subCombinations { subCombination := append([]int{c}, v...) combinations = append(combinations, subCombination) } } return combinations } func Part1(puzzle tools.AoCPuzzle) interface{} { input := puzzle.GetInputArrayInt() sort.Ints(input) combos25 := getCombinations(input, 25) fmt.Println(combos25) //combos150 := getCombinations(input, 150) return len(combos25) } func Part2(puzzle tools.AoCPuzzle) interface{} { return 0 }