46 lines
689 B
Go
46 lines
689 B
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"os"
|
|
"strconv"
|
|
"strings"
|
|
)
|
|
|
|
func check(e error) {
|
|
if e != nil {
|
|
panic(e)
|
|
}
|
|
}
|
|
|
|
func parseInput() []string {
|
|
raw_data, err := os.ReadFile("input.txt")
|
|
check(err)
|
|
data := string(raw_data[:])
|
|
lines := strings.Split(strings.TrimSpace(data), "\n")
|
|
return lines
|
|
}
|
|
|
|
func part1() {
|
|
output := 0
|
|
for _, bank := range parseInput() {
|
|
max := 0
|
|
for i, n1 := range bank[:len(bank)-1] {
|
|
for _, n2 := range bank[i+1:] {
|
|
new_value, err := strconv.Atoi(string(n1) + string(n2))
|
|
check(err)
|
|
if new_value > max {
|
|
max = new_value
|
|
}
|
|
}
|
|
}
|
|
output = output + max
|
|
}
|
|
fmt.Println(output)
|
|
}
|
|
|
|
func main() {
|
|
fmt.Println("Part 1:")
|
|
part1()
|
|
}
|