package main import ( "bufio" "fmt" "os" "strconv" "strings" ) // エントリポイント func main() { in := bufio.NewScanner(os.Stdin) // 竹の数 in.Scan() input1 := in.Text() // 竹の高さ in.Scan() input2 := in.Text() fmt.Println(pineDecoration(input1, input2)) } // 竹の高さが門松の列になっている個数を返す。 func pineDecoration(bambooNum string, bambooHeights string) string { _ = bambooNum sp := strings.Split(bambooHeights, " ") h := make([]int, 0) for _, c := range sp { i, _ := strconv.Atoi(c) h = append(h, i) } // 門松の判定 count := 0 for i := 1; i < len(h)-1; i++ { // すべて違う高さ if h[i-1] == h[i] || h[i] == h[i+1] || h[i-1] == h[i+1] { continue } // 中央が2番目の高さではない if (h[i-1] > h[i] && h[i] > h[i+1]) || (h[i-1] < h[i] && h[i] < h[i+1]) { continue } count++ } return strconv.Itoa(count) }