From 9d1822636611247da987f4e4ad85c3130e7f25ef Mon Sep 17 00:00:00 2001 From: ZennDev1337 Date: Wed, 15 Nov 2023 18:34:41 +0100 Subject: [PATCH] half of day 3 --- 2021/day3/main.go | 48 ++++++++++++++++++++++++++++++++++++++++-- 2021/day3/main_test.go | 2 +- 2 files changed, 47 insertions(+), 3 deletions(-) diff --git a/2021/day3/main.go b/2021/day3/main.go index 6f65e9e..0c93ae4 100644 --- a/2021/day3/main.go +++ b/2021/day3/main.go @@ -1,11 +1,55 @@ package main -import "fmt" +import ( + "bufio" + "fmt" + "os" +) +func GetData(s string) []string { + var result []string + fileReader, err := os.Open(s) + if err != nil { + return nil + } + lines := bufio.NewScanner(fileReader) + lines.Split(bufio.ScanLines) + for lines.Scan() { + result = append(result, lines.Text()) + } + return result +} func main() { fmt.Println("GoFast!") + } -func Part1() int { +func Part1(s []string) int { + var store []rune + var result []string + resultLen := len([]rune(s[0])) + zero, one := 0, 0 + for x := 0; x < resultLen; x++ { + for _, report := range s { + chars := []rune(report) + store = append(store, chars[x]) + } + for _, data := range store { + switch data { + case '0': + zero++ + case '1': + one++ + } + } + fmt.Println(zero, one) + if zero < one { + result = append(result, "1") + } else { + result = append(result, "0") + } + zero, one = 0, 0 + } + fmt.Println(result) return 0 } diff --git a/2021/day3/main_test.go b/2021/day3/main_test.go index c624866..d436dc5 100644 --- a/2021/day3/main_test.go +++ b/2021/day3/main_test.go @@ -4,7 +4,7 @@ import "testing" func TestPart1(t *testing.T) { const expected = 198 - result := Part1() + result := Part1(GetData("./test-data")) if result != expected { t.Fatalf("Expected: %d Result: %d", expected, result) }