M day01/main.go => day01/main.go +3 -3
@@ 4,7 4,7 @@ import (
"fmt"
"log"
- "git.xenrox.net/~xenrox/aoc2021/utils"
+ "git.xenrox.net/~xenrox/aoc2021/utils/files"
)
func Run() {
@@ 24,7 24,7 @@ func Run() {
}
func calc1(path string) (int, error) {
- lines, err := utils.ReadFileToInt(path)
+ lines, err := files.SplitNewlineToInt(path)
if err != nil {
return 0, err
}
@@ 40,7 40,7 @@ func calc1(path string) (int, error) {
}
func calc2(path string) (int, error) {
- lines, err := utils.ReadFileToInt(path)
+ lines, err := files.SplitNewlineToInt(path)
if err != nil {
return 0, err
}
M day03/main.go => day03/main.go +2 -2
@@ 5,7 5,7 @@ import (
"log"
"strconv"
- "git.xenrox.net/~xenrox/aoc2021/utils"
+ "git.xenrox.net/~xenrox/aoc2021/utils/files"
)
func Run() {
@@ 18,7 18,7 @@ func Run() {
}
func calc1(path string) (int, error) {
- lines, err := utils.ReadFile(path)
+ lines, err := files.SplitNewline(path)
if err != nil {
return 0, err
}
R utils/readfile.go => utils/files/readfile.go +31 -3
@@ 1,12 1,13 @@
-package utils
+package files
import (
"bufio"
"os"
"strconv"
+ "strings"
)
-func ReadFile(path string) ([]string, error) {
+func SplitNewline(path string) ([]string, error) {
var lines []string
f, err := os.Open(path)
@@ 23,7 24,7 @@ func ReadFile(path string) ([]string, error) {
return lines, nil
}
-func ReadFileToInt(path string) ([]int, error) {
+func SplitNewlineToInt(path string) ([]int, error) {
var lines []int
f, err := os.Open(path)
@@ 44,3 45,30 @@ func ReadFileToInt(path string) ([]int, error) {
return lines, nil
}
+
+func SplitCommaToInt(path string) ([]int, error) {
+ var intSlice []int
+ var stringSlice []string
+
+ f, err := os.Open(path)
+ if err != nil {
+ return intSlice, err
+ }
+ defer f.Close()
+
+ scanner := bufio.NewScanner(f)
+ for scanner.Scan() {
+ stringSlice = strings.Split(scanner.Text(), ",")
+ }
+
+ for _, v := range stringSlice {
+ position, err := strconv.Atoi(v)
+ if err != nil {
+ return intSlice, err
+ }
+
+ intSlice = append(intSlice, position)
+ }
+
+ return intSlice, nil
+}