First day

This commit is contained in:
2023-12-01 16:46:08 +01:00
parent 33b14154cf
commit aff92c4624
5 changed files with 1084 additions and 10 deletions
+56
View File
@@ -0,0 +1,56 @@
package day01
import (
"strconv"
"strings"
"unicode"
utils "git.anthonygueguen.fr/g3po/aoc2023/internal"
)
var wordNum = map[string]string{
"one": "o1e",
"two": "t2o",
"three": "t3e",
"four": "f4r",
"five": "f5e",
"six": "s6x",
"seven": "s7n",
"eight": "e8t",
"nine": "n9e",
}
func GetDigits(content []string) []int {
var digits []int
for _, line := range content {
d_str := ""
for _, c := range line {
if unicode.IsDigit(c) {
d_str = d_str + string(c)
break
}
}
for i := len(line) - 1; i >= 0; i-- {
if unicode.IsDigit(rune(line[i])) {
d_str = d_str + string(line[i])
break
}
}
utils.Must[int](strconv.Atoi(d_str))
digits = append(digits, utils.Must[int](strconv.Atoi(d_str)))
}
return digits
}
func WordToNum(content []string) []string {
var rContent []string
for _, line := range content {
str := line
for k, v := range wordNum {
str = strings.ReplaceAll(str, k, v)
}
rContent = append(rContent, str)
}
return rContent
}
+5 -2
View File
@@ -4,6 +4,7 @@ import (
"fmt"
"log"
"os"
"strings"
)
func Must[T any](obj T, err error) T {
@@ -13,7 +14,9 @@ func Must[T any](obj T, err error) T {
return obj
}
func Init() []byte {
func Init() []string {
fmt.Println("Opening file...")
return Must(os.ReadFile("./input.txt"))
bytes := Must(os.ReadFile("./input.txt"))
content := strings.Split(string(bytes), "\n")
return content[:len(content)-1]
}