From b3bfb86563359e935eb48fdde543115acc1fa98d Mon Sep 17 00:00:00 2001 From: David Ashby Date: Tue, 1 Dec 2020 22:19:49 -0500 Subject: [PATCH] make it parallel, not that it makes it much faster --- 01/main.go | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/01/main.go b/01/main.go index 5cda322..709c15e 100644 --- a/01/main.go +++ b/01/main.go @@ -35,12 +35,15 @@ func partOne() { numbers = append(numbers, i) } + solution := make(chan int, 1) for i := range numbers { - if result := checkTwoSums(numbers[i], numbers[i+1:]); result != 0 { - fmt.Println(result) - return - } + go func(a int) { + if r := checkTwoSums(numbers[a], numbers[a+1:]); r != 0 { + solution <- r + } + }(i) } + fmt.Println(<-solution) } func checkTwoSums(i int, rest []int) int { @@ -68,14 +71,18 @@ func partTwo() { numbers = append(numbers, i) } + solution := make(chan int, 1) + for i := range numbers { - for j := range numbers[i+1:] { - if result := checkThreeSums(numbers[i], numbers[j], numbers[j+1:]); result != 0 { - fmt.Println(result) - return + go func(a int) { + for j := range numbers[a+1:] { + if r := checkThreeSums(numbers[a], numbers[j], numbers[j+1:]); r != 0 { + solution <- r + } } - } + }(i) } + fmt.Println(<-solution) } func checkThreeSums(i int, j int, rest []int) int {