気づけるか。そこが勝負。 解説の通りなんだけれども、得点を最大化する戦略はパーを出すだけ出す。 そして並び順はどうでもよい。 というのも、相手がグーを出しているとき、グーからパーにすると+1ポイント。 相手がパーを出しているとき、グーからパーにしても+1ポイントでどこをパーにしても常に同じ。
ここから得点計算すればよい。
教訓としては差分を考える、ということと、 極端なケースから始めよう、というところかな。
def solve(s): return len(s) // 2 - s.count("p") if __name__ == "__main__": print(solve(input()))
これも気づけるか。そこが勝負。 以前どこかで二次元の問題をやったときにでてきたもので、 色の境目の数がひっくり返す必要のあるもの。単にそれを数えればよい。
def solve(s): return s.count("BW") + s.count("WB") if __name__ == "__main__": print(solve(input()))