Move copy of array in filterNumbersPart2
This commit is contained in:
parent
6491807ab8
commit
2d2a5e7bd6
@ -27,8 +27,8 @@ func main() {
|
||||
}
|
||||
|
||||
func part2(intArray [][]int) {
|
||||
oxygenGeneratorRating, _ := filterNumbersPart2(append([][]int(nil), intArray...), 0)
|
||||
co2ScrubberRating, _ := filterNumbersPart2(append([][]int(nil), intArray...), 1)
|
||||
oxygenGeneratorRating, _ := filterNumbersPart2(intArray, 0)
|
||||
co2ScrubberRating, _ := filterNumbersPart2(intArray, 1)
|
||||
fmt.Println(co2ScrubberRating * oxygenGeneratorRating)
|
||||
}
|
||||
|
||||
@ -42,21 +42,23 @@ func part1(intArray [][]int) {
|
||||
}
|
||||
|
||||
func filterNumbersPart2(intArray [][]int, invert int) (int64, error){
|
||||
gammaArray := getGammaArray(intArray, invert)
|
||||
intArrayCopy := make([][]int, len(intArray))
|
||||
copy(intArrayCopy, intArray)
|
||||
gammaArray := getGammaArray(intArrayCopy, invert)
|
||||
i := 0
|
||||
for len(intArray) > 1 {
|
||||
for len(intArrayCopy) > 1 {
|
||||
n := 0
|
||||
for _, number := range intArray {
|
||||
for _, number := range intArrayCopy {
|
||||
if number[i] == gammaArray[i] {
|
||||
intArray[n] = number
|
||||
intArrayCopy[n] = number
|
||||
n++
|
||||
}
|
||||
}
|
||||
intArray = intArray[:n]
|
||||
gammaArray = getGammaArray(intArray, invert)
|
||||
intArrayCopy = intArrayCopy[:n]
|
||||
gammaArray = getGammaArray(intArrayCopy, invert)
|
||||
i++
|
||||
}
|
||||
s, _ := json.Marshal(intArray[0])
|
||||
s, _ := json.Marshal(intArrayCopy[0])
|
||||
intString := strings.Replace(strings.Trim(string(s), "[]"),",","",-1)
|
||||
return strconv.ParseInt(intString, 2, 64)
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user