反転


質問する

  • BOJ 1439号:反転
  • 入力条件

  • の第1行には、0および1のみからなる文字列Sが与えられる.Sの長さは100万未満である.
  • しゅつりょくじょうけん

  • 第1行目は、多順がすべき行動の最小回数を出力する.
  • Test Case

    // 입력 예시 1
    0001100
    // 출력 예시 1
    1
    
    // 입력 예시 2
    00000001
    // 출력 예시 2
    1
    
    // 입력 예시 3
    11001100110011000001
    // 출력 예시 3
    4

    に近づく

  • のような数字が連続して繰り返されれば、一塊として数字が変わった瞬間にカウントする.
  • 0→1の変換回数と1→0の変換回数を計算し、2回のうちの最大値を出力します.
  • マイコード

    import sys
    input = sys.stdin.readline()
    s = input.rstrip()
    toOne = 0
    toZero = 0
    for i in range(1, len(s)):
    	if s[i] != s[i-1] and s[i-1] == '0':
        	toOne += 1
        elif s[i] != s[i-1] and s[i-1] == '1':
        	toZero += 1
    if s[-1] == '0':
    	toOne += 1
    else:
    	toZero += 1
        
    print(min(toOne, toZero))