Problem:
A： A-Z-

問題

26 マスの円環状のボードがあり、各マスには大文字のアルファベット 1 文字が、アルファベット順に時計回りに書かれています。すなわち、 'A' のマスの時計回り隣は 'B' のマスで、 'B' のマスの隣は 'C' のマスで、・・・、 'Z' のマスの時計回り隣は 'A' のマスです。

また、ボードには 'A' のマスに駒が 1 つ置かれています。

あなたは、文字列 S を受け取り、 S の先頭から 1 文字ずつ見て駒を操作します。 i 回目の操作は以下のようになります。

その時点で駒のあるマスから S の i 文字目のアルファベットのマスを目指して、駒を時計回りに 1 マスずつ移動させる。このとき少なくとも 1 マスは移動するとする。したがって、例えば 'A' のマスから 'A' のマスに移動する際は、ボードを 1 周しなくてはならない。

上記の操作の結果、駒が 'A' のマスを何回踏んだかを答えてください。なお「 'A' のマスを踏む」とは、 'Z' のマスから 'A' のマスに駒を進めることを言います。

入力形式

入力は 1 行で与えられる。

S

S はあなたが受け取る文字列を表す。

制約

1 \leq |S| \leq 100

S は英大文字のみで構成される。

出力形式

'A' のマスを何回踏んだかを 1 行で出力せよ。

入力例1

AIZU

出力例1

2

A -> A (ここで 1 回)

A -> I (ここまで 1 回)

I -> Z (ここまで 1 回)

Z -> U (ここまで 2 回)

入力例2

HOKKAIDO

出力例2

4

Solution in C# (judge verdict: Accepted)

using System;

namespace Aizu {
    public class OnlineJudge {
        static void Main() {
            var count = 0;
            var last = 'A';
            foreach (var c in Console.ReadLine()) {
                if (c <= last) {
                    ++count;
                }
                last = c;
            }

            Console.WriteLine(count);
        }
    }
}