initialise
This commit is contained in:
63
3/main.go
Normal file
63
3/main.go
Normal file
@@ -0,0 +1,63 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"bufio"
|
||||
"fmt"
|
||||
"os"
|
||||
"regexp"
|
||||
"strconv"
|
||||
// "strings"
|
||||
)
|
||||
|
||||
func main() {
|
||||
filePath := "input"
|
||||
file, err := os.Open(filePath)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
result := 0
|
||||
defer file.Close()
|
||||
scanner := bufio.NewScanner(file)
|
||||
r := regexp.MustCompile(`mul\([0-9]{1,3},[0-9]{1,3}\)|do\(\)|don't\(\)`)
|
||||
numbers := regexp.MustCompile(`[0-9]{1,3}`)
|
||||
enabled := true
|
||||
for scanner.Scan() {
|
||||
line := scanner.Text()
|
||||
matches := r.FindAllString(line, -1)
|
||||
fmt.Println(matches)
|
||||
for i := range matches {
|
||||
if matches[i] == "do()" {
|
||||
fmt.Println("Do")
|
||||
enabled = true
|
||||
} else if matches[i] == "don't()" {
|
||||
fmt.Println("Don't")
|
||||
enabled = false
|
||||
} else {
|
||||
if enabled {
|
||||
fmt.Println(matches[i], " enabled")
|
||||
multipliers := numbers.FindAllString(matches[i], -1)
|
||||
firstNumber, _ := strconv.Atoi(multipliers[0])
|
||||
secondNumber, _ := strconv.Atoi(multipliers[1])
|
||||
result = result + firstNumber * secondNumber
|
||||
} else {
|
||||
fmt.Println(matches[i], " disabled")
|
||||
}
|
||||
}
|
||||
// multipliers := numbers.FindAllString(matches[i], -1)
|
||||
//// fmt.Println(multipliers)
|
||||
//// fmt.Printf("%T\n", multipliers)
|
||||
//// fmt.Println(len(multipliers))
|
||||
//// fmt.Println(multipliers[0])
|
||||
// firstNumber, _ := strconv.Atoi(multipliers[0])
|
||||
// secondNumber, _ := strconv.Atoi(multipliers[1])
|
||||
// result = result + firstNumber * secondNumber
|
||||
//// for j := range multipliers {
|
||||
//// multipliersSplit := strings.Fields(multipliers[j])
|
||||
//// multiplierInt1, _ := strconv.Atoi(multipliersSplit[0])
|
||||
//// multiplierInt2, _ := strconv.Atoi(multipliersSplit[1])
|
||||
//// result = result + multiplierInt1 * multiplierInt2
|
||||
//// }
|
||||
}
|
||||
}
|
||||
fmt.Println(result)
|
||||
}
|
||||
Reference in New Issue
Block a user