advent-20/solutions/utils.go

61 lines
927 B
Go
Raw Normal View History

2024-02-25 01:39:28 +00:00
package solutions
import (
2024-05-02 14:17:00 +00:00
"bufio"
2024-02-25 01:39:28 +00:00
"fmt"
2024-05-02 14:17:00 +00:00
"log"
2024-02-25 01:39:28 +00:00
"os"
2024-05-02 14:17:00 +00:00
"strconv"
2024-02-25 01:39:28 +00:00
)
2024-05-02 14:17:00 +00:00
const DIR = "./"
2024-02-25 01:39:28 +00:00
func ReadInput(day string, isTest bool) string {
testStr := ""
if isTest {
2024-02-25 02:21:42 +00:00
testStr = "_test"
2024-02-25 01:39:28 +00:00
}
2024-02-25 02:21:42 +00:00
bytes, err := os.ReadFile(DIR + "inputs" + testStr + "/" + day + ".txt")
2024-02-25 01:39:28 +00:00
if err != nil {
fmt.Println(err)
panic("Error reading file.")
}
return string(bytes)
}
2024-05-02 14:17:00 +00:00
func ReadAndMapInt(day string, isTest bool) []int {
testStr := ""
if isTest {
testStr = "_test"
}
filePath := DIR + "inputs" + testStr + "/" + day + ".txt"
file, err := os.Open(filePath)
if err != nil {
log.Fatal(err)
}
defer file.Close()
numbers := make([]int, 0)
scanner := bufio.NewScanner(file)
for scanner.Scan() {
valueStr := scanner.Text()
number, err := strconv.Atoi(valueStr)
if err != nil {
log.Fatal(err)
}
numbers = append(numbers, number)
}
if err := scanner.Err(); err != nil {
log.Fatal(err)
}
return numbers
}