AoC 2023 Tag 1

Aus xinux.net
Zur Navigation springen Zur Suche springen

Beispiel Input

  • vim input.txt
1abc2
pqr3stu8vwx
a1b2c3d4e5f
treb7uchet

Lösung in Go

  • go mod init aoc/01
  • vim calibration-1.go
package main

import (
	"bufio"
	"fmt"
	"os"
)

func main() {
	file, err := os.Open("input.txt")
	sum := 0

	if err != nil {
		panic(err)
	}

	defer file.Close()

	scanner := bufio.NewScanner(file)

	for scanner.Scan() {
	 	line := scanner.Text()
		line_len := len(line) - 1

		 for _, char := range line {
		 	if char > 47 && char < 58 {
				sum += (int(char) - 48) * 10
			 	break
			}
		}

		for idx := range line {
			char := line[line_len - idx]
		 	if char > 47 && char < 58 {
				sum += int(char) - 48
				break
			}
		}
	}
	fmt.Println(sum)

	if err := scanner.Err(); err != nil {
		fmt.Fprintln(os.Stderr, "file error:", err)
	}
}
  • go run calibration-1.go