6 "adventofcode2023/utils"
7 "adventofcode2023/utils/grid2d"
8 sparsegrid "adventofcode2023/utils/sparseGrid"
11 func ToInts(input string, sep string) []int {
13 for _, line := range strings.Split(input, sep) {
15 r = append(r, utils.MustAtoi(line))
21 func ToGrid2D[T any](input, rowSep, colSep string, empty T, conv func(string) T) *grid2d.Grid[T] {
22 lines := strings.Split(input, rowSep)
24 grid := grid2d.NewGrid(len(lines[0]), len(lines), empty)
25 for y, line := range lines {
26 for x, v := range strings.Split(line, colSep) {
27 grid.Set(x, y, conv(v))
34 func ToSparseGrid[T comparable](input, rowSep, colSep string, empty T, conv func(string) T) *sparsegrid.SparseGrid[T] {
35 lines := strings.Split(input, rowSep)
37 grid := sparsegrid.NewGrid(empty)
38 for y, line := range lines {
39 for x, v := range strings.Split(line, colSep) {
40 grid.Set(x, y, conv(v))