2020 Day 10 Complete!
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user