solutions for the Advent of Code 2023
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

57 lines
858 B

package main
import (
"bufio"
"io"
"strconv"
"strings"
)
var spaceReplacer = strings.NewReplacer("\t", "", " ", "")
func must(err error) {
if err != nil {
panic(err)
}
}
func reachedeof(err error) bool {
if err != nil {
if err == io.EOF {
return true
} else {
panic(err)
}
}
return false
}
func scanints(str string) []int {
ints := make([]int, 0)
scanner := bufio.NewScanner(strings.NewReader(str))
scanner.Split(bufio.ScanWords)
for scanner.Scan() {
val, err := strconv.Atoi(scanner.Text())
if err != nil {
panic(err)
}
ints = append(ints, val)
}
return ints
}
// reverses a slice in place
func reverseSlice[T any](s []T) {
for i, j := 0, len(s)-1; i < j; i, j = i+1, j-1 {
s[i], s[j] = s[j], s[i]
}
}
func maxmin(v1, v2 int) (int, int) {
if v1 > v2 {
return v1, v2
}
return v2, v1
}