2020 Day 10 Complete!

This commit is contained in:
2020-12-10 09:46:03 -06:00
parent 9f412dbd29
commit 581b0682d4
3 changed files with 181 additions and 55 deletions

View File

@@ -54,11 +54,11 @@ func part1(inp []int) map[int]int {
}
var prevs map[int][]int
var psbs map[int][][]int
var psbs map[int]int
func part2(inp []int) int {
psbs = make(map[int][][]int)
psbs[0] = [][]int{{0}}
psbs = make(map[int]int)
psbs[0] = 1
prevs = make(map[int][]int)
var phone int
for i := range inp {
@@ -75,24 +75,16 @@ func part2(inp []int) int {
prevs[inp[i]] = findPrevPoss(inp[i], inp)
}
total := len(findConfigs(phone))
return total
return findConfigs(phone)
}
func findConfigs(curr int) [][]int {
func findConfigs(curr int) int {
if p, ok := psbs[curr]; ok {
return p
} else {
var ret [][]int
var ret int
for _, v := range prevs[curr] {
rec := findConfigs(v)
if len(rec) > 0 {
for _, rv := range rec {
ret = append(ret, append([]int{curr}, rv...))
}
} else {
ret = [][]int{{curr}}
}
ret = ret + findConfigs(v)
}
psbs[curr] = ret
return ret