問題
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() |