From 39ce3a0dea10c4fc0da09da28ebf9e425a77c482 Mon Sep 17 00:00:00 2001 From: Karl Spickermann Date: Wed, 23 Dec 2020 22:32:12 +0100 Subject: [PATCH] Day23 Part 2 --- .idea/workspace.xml | 68 +++++++++++++++++++++++++++++---------------- day23/day23.go | 44 ++++++++++++++++------------- 2 files changed, 68 insertions(+), 44 deletions(-) diff --git a/.idea/workspace.xml b/.idea/workspace.xml index f6ce98a..8b26534 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -11,9 +11,8 @@ - - + - + - + - + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - + @@ -407,9 +406,30 @@ - + - + + + + + + + file://$PROJECT_DIR$/day23/day23.go + 40 + + + file://$PROJECT_DIR$/day23/day23.go + 28 + + + file://$PROJECT_DIR$/day23/day23.go + 34 + + + \ No newline at end of file diff --git a/day23/day23.go b/day23/day23.go index d662dfa..b88a31e 100644 --- a/day23/day23.go +++ b/day23/day23.go @@ -17,27 +17,28 @@ func main() { var cups = make(map[int]*Cup) fmt.Println(input) - for _, val := range input{ - number,_ := strconv.Atoi(string(val)) - cups[number] = &Cup{Number: number} - } - for id, val := range input { - number,_ := strconv.Atoi(string(val)) - nextNumber, _ := strconv.Atoi(string(input[(id+1)%len(input)])) - cups[number].Next = cups[nextNumber] - } - var inputNumbers []int for _, val := range input{ number,_ := strconv.Atoi(string(val)) inputNumbers = append(inputNumbers,number) } - + _, maxInput := minMax(inputNumbers) + length := len(inputNumbers) + for i := 0; i < 1000000-length; i++ { + inputNumbers = append(inputNumbers, maxInput+1+i) + } + for _, val := range inputNumbers{ + cups[val] = &Cup{Number: val} + } + for id, val := range inputNumbers { + number := val + nextNumber := inputNumbers[(id+1)%len(inputNumbers)] + cups[number].Next = cups[nextNumber] + } min, max := minMax(inputNumbers) iteration := 0 currentCup := cups[inputNumbers[0]] - for iteration < 100 { - fmt.Println(currentCup.Number) + for iteration < 10000000 { threeCupStart := currentCup.Next threeCupEnd := threeCupStart.Next.Next currentCup.Next = threeCupEnd.Next @@ -60,13 +61,16 @@ func main() { currentCup = currentCup.Next iteration++ } - s := "" - cup := cups[1].Next - for cup != cups[1] { - s += fmt.Sprint(cup.Number) - cup = cup.Next - } - fmt.Println(s) + fmt.Println("Fineshed") + firstCup := cups[1] + fmt.Println(firstCup.Next.Number) + fmt.Println(firstCup.Next.Next.Number) + //s := "" + //cup := cups[1].Next + //for cup != cups[1] { + // cup = cup.Next + //} + //fmt.Println(s) } func runRound(cups *[]int){