add day 1 and 2 solutions

This commit is contained in:
george
2024-06-18 15:06:38 +01:00
commit a1b380717c
11 changed files with 197 additions and 0 deletions
+48
View File
@@ -0,0 +1,48 @@
package parser
import (
"fmt"
"io"
"os"
"strconv"
"strings"
)
const DefaultFile = "input"
func ParseFile(input *string) ([]int, error) {
if input == nil {
file := DefaultFile
if len(os.Args) == 2 {
file = os.Args[1]
}
inputFile, err := os.Open(file)
if err != nil {
return nil, fmt.Errorf("could not parse input file: %v", err)
}
fileData, err := io.ReadAll(inputFile)
if err != nil {
return nil, fmt.Errorf("could not read input file: %v", err)
}
fileStr := strings.TrimSpace(string(fileData))
input = &fileStr
}
strNums := strings.Split(*input, ",")
opcodes := make([]int, len(strNums))
for i, v := range strNums {
num, err := strconv.Atoi(v)
if err != nil {
fmt.Fprintf(os.Stderr, "WARNING: error parsing int from input, substring was %v", v)
}
opcodes[i] = num
}
return opcodes, nil
}