inital commit, 1&2
This commit is contained in:
75
main.go
Normal file
75
main.go
Normal file
@@ -0,0 +1,75 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"flag"
|
||||
"fmt"
|
||||
"os"
|
||||
"regexp"
|
||||
"strconv"
|
||||
"strings"
|
||||
)
|
||||
|
||||
var (
|
||||
inputFile = flag.String("input", "input.txt", "input filename")
|
||||
nRegex = regexp.MustCompile(`(?m)\d`)
|
||||
reMap = map[string]string{
|
||||
"one": "1",
|
||||
"two": "2",
|
||||
"three": "3",
|
||||
"four": "4",
|
||||
"five": "5",
|
||||
"six": "6",
|
||||
"seven": "7",
|
||||
"eight": "8",
|
||||
"nine": "9",
|
||||
}
|
||||
)
|
||||
|
||||
func main() {
|
||||
flag.Parse()
|
||||
input, err := os.ReadFile(*inputFile)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
var sum int
|
||||
for _, line := range strings.Split(string(input), "\n") {
|
||||
var fLine, lLine string
|
||||
for i := 0; i < len(line); i++ {
|
||||
fLine += string(line[i])
|
||||
for k, v := range reMap {
|
||||
fLine = strings.ReplaceAll(fLine, k, v)
|
||||
}
|
||||
}
|
||||
fmt.Println(fLine)
|
||||
|
||||
for i := len(line) - 1; i >= 0; i-- {
|
||||
if i == len(line)-1 {
|
||||
lLine = string(line[i])
|
||||
} else {
|
||||
lLine = string(line[i]) + lLine
|
||||
}
|
||||
|
||||
for k, v := range reMap {
|
||||
lLine = strings.ReplaceAll(lLine, k, v)
|
||||
}
|
||||
}
|
||||
fmt.Println(lLine)
|
||||
|
||||
fMatch := nRegex.FindAllStringSubmatch(fLine, -1)
|
||||
lMatch := nRegex.FindAllStringSubmatch(lLine, -1)
|
||||
first := fMatch[0][0]
|
||||
last := lMatch[len(lMatch)-1:][0][0]
|
||||
|
||||
fmt.Println(first + last)
|
||||
|
||||
asInt, err := strconv.Atoi(first + last)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
sum += asInt
|
||||
}
|
||||
|
||||
fmt.Println(sum)
|
||||
}
|
Reference in New Issue
Block a user