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"
各位置について、左・自身・右に 'o' がないか確認する。
| $i$ | 左 | 自身 | 右 | 条件を満たす |
|---|---|---|---|---|
| $0$ | なし | x |
x |
はい |
| $1$ | x |
x |
o |
いいえ |
| $2$ | x |
o |
x |
いいえ |
| $3$ | o |
x |
x |
いいえ |
| $4$ | x |
x |
x |
はい |
| $5$ | x |
x |
o |
いいえ |
| $6$ | x |
o |
x |
いいえ |
| $7$ | o |
x |
なし | いいえ |
条件を満たすのは $i=0,4$ の $2$ か所なので、答えは $2$ となる。
注意点
特になし。
別解
特になし。