問題
https://atcoder.jp/contests/arc063/tasks/arc063_a
方針
同色の石の連続を一塊りとして考える。
塊がいくつあるかを考え、その数から1を引けば良い。
実装のポイント
実装の際には、for文を回しながら直前の要素変数old
と比較を行い、異なっていれば答えに相当する変数ans
をインクリメントする。
その際に、for文の最初で何が起きるかを考え、初期化を考える必要がある。
この実装では、BでもWでもない文字列init
を与える事で、確実にインクリメントが発生するようにしている。
コード
1 | S = input() |
別解
ややテクニカルだが、標準ライブラリitertools
のgroupby
を用いるととてもシンプルに実装できる。groupby
で、隣接する同じ要素をイテレータとしてまとめることができるため、イテレータを数え上げることで、問題を解くことができる。
1 | S = input() |