summaryrefslogtreecommitdiff
path: root/2024/go/src/day3
diff options
context:
space:
mode:
Diffstat (limited to '2024/go/src/day3')
-rw-r--r--2024/go/src/day3/main.go75
1 files changed, 0 insertions, 75 deletions
diff --git a/2024/go/src/day3/main.go b/2024/go/src/day3/main.go
deleted file mode 100644
index 661d7aa..0000000
--- a/2024/go/src/day3/main.go
+++ /dev/null
@@ -1,75 +0,0 @@
-package main
-
-import (
- "fmt"
- "os"
- "regexp"
- "strconv"
-)
-
-func FileRead(path string) string {
- file, err := os.ReadFile(path)
- if err != nil {
- fmt.Println("Couldn't Read file: ", err)
- }
- return string(file)
-
-}
-
-func solve_part_one(data string) int {
- pattern := `mul\((\d+),(\d+)\)`
- regex := regexp.MustCompile(pattern)
-
- // FindStringSubmatch returns the full match and all capture groups
- matches := regex.FindAllStringSubmatch(data, -1)
-
- ans := 0
-
- // Iterate over all matches
- for _, match := range matches {
- // fmt.Printf("Match %d:\n", i+1)
- // fmt.Println(" Full match:", match[0]) // Entire match
- left, _ := strconv.Atoi(match[1])
- right, _ := strconv.Atoi(match[2])
- ans += left * right
- }
- return ans
-}
-
-func solve_part_two(data string) int {
- pattern := `mul\((\d+),(\d+)\)|don't\(\)|do\(\)`
- regex := regexp.MustCompile(pattern)
-
- // FindStringSubmatch returns the full match and all capture groups
- matches := regex.FindAllStringSubmatch(data, -1)
-
- ans := 0
- enabled := true
-
- // Iterate over all matches
- for _, match := range matches {
- left, _ := strconv.Atoi(match[1])
- right, _ := strconv.Atoi(match[2])
- if match[0] == "don't()" {
- enabled = false
- } else if match[0] == "do()" {
- enabled = true
- }
- if enabled {
- ans += left * right
- }
- }
- return ans
-}
-
-func main() {
- test := FileRead("../input/day3.test")
- test_2 := FileRead("../input/day3_2.test")
- prod := FileRead("../input/day3.prod")
- // Define the regex pattern with capture groups
-
- fmt.Println("Part_1 test: ", solve_part_one(test))
- fmt.Println("Part_1 prod: ", solve_part_one(prod))
- fmt.Println("Part_2 test: ", solve_part_two(test_2))
- fmt.Println("Part_2 prod: ", solve_part_two(prod))
-}