ABC469 B - Isolated Seats
孤立した空席
考え方
条件を満たす個数を数えるので、全探索をすればよい。
for ループで座席を $1$ つずつ見て、条件を満たしていれば $1$ ずつカウントする。
条件は、左の席、その席、右の席に 'o' がないこと。
つまり、以下の $3$ つを全て満たすならカウントすればよい。
- 左の席が存在しない、または左の席が
'x':i==0||s.at(i-1)=='x' - 自身の席が
'x':s.at(i)=='x' - 右の席が存在しない、または右の席が
'x':i==n-1||s.at(i+1)=='x'
入力例1での動作
入力を受け取る。
n: 8
s: "xxoxxxox"
条件を満たす椅子の個数を数える変数 result を $0$ で初期化する。
result: 0
各位置 i を順に調べる。
i=0 では、自身の s[0] と右の s[1] はどちらも 'x' であり、左の席は存在しない。
条件を満たすので、result に $1$ 加える。
result: 1
i=1 では、右の s[2] が 'o' なので、条件を満たさない。
i=2 では、自身の s[2] が 'o' なので、条件を満たさない。
i=3 では、左の s[2] が 'o' なので、条件を満たさない。
i=4 では、左の s[3]、自身の s[4]、右の s[5] がすべて 'x' であるので、result に $1$ 加える。
result: 2
i=5 では、右の s[6] が 'o' なので、条件を満たさない。
i=6 では、自身の s[6] が 'o' なので、条件を満たさない。
i=7 では、左の s[6] が 'o' なので、条件を満たさない。
すべての位置を調べ終えたとき、result は $2$ となる。
最後に、result の値である $2$ を出力する。
注意点
特になし。
別解
特になし。