BOJ 1439 뒤집기

LONGNEW·2021년 2월 27일
0

BOJ

목록 보기
184/333

https://www.acmicpc.net/problem/1439
시간 2초, 메모리 128MB
input :

  • 문자열 S가 주어진다. S의 길이는 100만보다 작다.

output :

  • 다솜이가 해야하는 행동의 최소 횟수를 출력

조건 :

  • 다솜이가 할 수 있는 행동은 S에서 연속된 하나 이상의 숫자를 잡고 모두 뒤집는 것이다. 뒤집는 것은 1을 0으로, 0을 1로 바꾸는 것을 의미

다솜이가 해야하는 행동들은 전체를 뒤집는 것은 문자열에 영향을 주는 것이 없다. 결국 0 뭉치의 개수 혹은 1뭉치의 개수 만큼 뒤집어 줘야 한다.

그래서 둘 중 작은 값 만큼 뒤집어 주는 경우가 정답이 된다.

import sys

data = sys.stdin.readline().strip()
zero, one = 0, 0

prev = data[0]
if prev == '1':
    one += 1
else:
    zero += 1

for i in range(1, len(data)):
    if data[i] != prev:
        if data[i] == '1':
            one += 1
        else:
            zero += 1
    prev = data[i]

print(min(zero, one))

0개의 댓글