This commit is contained in:
2024-12-03 18:36:43 +02:00
parent 0c1fc940b3
commit c27b981663

View File

@@ -3,30 +3,51 @@ package main
import (
"fmt"
"os"
"regexp"
"strconv"
"strings"
)
func calculate(x string) int {
clean1 := strings.Replace(x, "mul(", "", -1)
clean2 := strings.Replace(clean1, ")", "", -1)
splat := strings.Split(clean2, ",")
l, err := strconv.Atoi(splat[0])
if err != nil {
}
r, err := strconv.Atoi(splat[1])
if err != nil {
}
return l * r
}
func main() {
lines, err := parse()
if err != nil {
fmt.Println("Error:", err)
}
oneline := strings.Join(lines, "")
var p1 int = 0
var p2 int = 0
for _, line := range lines {
numbers := strings.Fields(line)
report := make([]int, len(numbers))
for i, num := range numbers {
x, err := strconv.Atoi(num)
if err != nil {
panic(err)
}
report[i] = x
}
re := regexp.MustCompile(`mul\(\d+,\d+\)`)
matches := re.FindAllString(oneline, -1)
for i := 0; i < len(matches); i++ {
p1 += calculate(matches[i])
}
onecleanre := regexp.MustCompile(`(?s)don\'t\(\).*?do\(\)|$`)
oneclean := onecleanre.ReplaceAllString(oneline, "")
re2 := regexp.MustCompile(`mul\(\d+,\d+\)`)
matches2 := re2.FindAllString(oneclean, -1)
for i := 0; i < len(matches2); i++ {
p2 += calculate(matches2[i])
}
fmt.Println("p1: ", p1)