알고리즘💻/그리디

BOJ 1439번: 뒤집기

호프 2023. 9. 14. 00:16

https://www.acmicpc.net/problem/1439

 

1439번: 뒤집기

다솜이는 0과 1로만 이루어진 문자열 S를 가지고 있다. 다솜이는 이 문자열 S에 있는 모든 숫자를 전부 같게 만들려고 한다. 다솜이가 할 수 있는 행동은 S에서 연속된 하나 이상의 숫자를 잡고 모

www.acmicpc.net

0과 1이 모여있는 집단(?) 의 갯수를 구해서 더 적은 쪽을 출력하면 되는 문제였다.

cnt = [0, 0] 을 만들어서 주어진 문자열을 순회하면서 앞의 문자와 뒤의 문자가 달라질 때마다 해당하는 인덱스에 카운트를 했다.

이때 주의할 점은 '0011' 과 같은 경우에 마지막 11이 카운트가 되지 않기 때문에 주어진 문자열의 맨 뒤에 '2'를 추가해서 무조건 카운트가 되도록 했다.

 

import sys
input = sys.stdin.readline

S = input().rstrip() + '2'
cnt = [0, 0]
for i in range(len(S) - 1):
    if (S[i] != S[i+1]):
        cnt[int(S[i])] += 1

print(min(cnt))