package main import ( "fmt" "io" "log" "os" ) func main() { var input []string var readInp string for { _, err := fmt.Scan(&readInp) if err != nil { if err != io.EOF { log.Fatal(err) } break } input = append(input, readInp) } var total int var wentToBasement bool var procIdx int for _, k := range input { for i := range k { procIdx++ if k[i] == '(' { total++ } else if k[i] == ')' { total-- } if total < 0 && !wentToBasement { wentToBasement = true fmt.Printf("Went to basement at direction #%d\n", procIdx) } } } fmt.Printf("Santa should go to floor %d\n", total) fmt.Println("\nBen's Solution:") bens() } func bens() { file, err := os.Open("./input") floor := 0 if err != nil { fmt.Println(err) os.Exit(1) } defer file.Close() for { data := make([]byte, 1) _, err := file.Read(data) if err != nil { break } if data[0] == '(' { floor = floor + 1 } else { floor = floor - 1 } } fmt.Printf("Floor: %d\n", floor) }