くろたんく雑記帳

日常とか、わんちゃんとか、機械学習とか、競プロとか、

MENU

Python3で解く AtCoder Beginner Contest 143 C - Slimes

同じ文字をグループとして捉えてその切れ目を数える


概要

問題

  1. 文字列が与えられる。
  2. 例えばaabbbbaacaであれば、[aa][bbb][aa][c][a]のように隣接する文字が同じ場合は一つのグループとする。(問題的にはスライム)
  3. 最終的にグループの数は?

解くときに考えた内容

  • 順に見ていって異なる文字の切れ目のカウントをすればいいのでは?
  • 左から2文字から見ていって、一つ手前単純に手前の文字と同じかどうかをチェックして、異なるならカウント、異ならないなら次の文字をみる。とすればいい

コード

def main():
    n = int(input())
    s = list(input())
    cnt = 1
    for i in range(1, n):
        if s[i] == s[i-1]:
            continue
        else:
            cnt += 1
    print(cnt)
    
if __name__ == '__main__':
    main()