package main import ( "fmt" "os" "strings" ) func main() { data := readFile("../input.txt") characters := strings.Split(data, "") part1 := part1(characters) part2 := part2(characters) fmt.Printf("Part 1: %d\n", part1) fmt.Printf("Part 2: %d\n", part2) } func part1(input []string) int { floorLevel := 0 for _, v := range input { switch v { case "(": floorLevel += 1 default: floorLevel -= 1 } } return floorLevel } func part2(input []string) int { floorLevel := 0 position := 0 for i, v := range input { switch v { case "(": floorLevel += 1 default: floorLevel -= 1 } if floorLevel == -1 { position = i + 1 break } } return position } func readFile(filename string) string { content, err := os.ReadFile(filename) if err != nil { return "" } return string(content) }