PS

백준 1439. 뒤집기

tose33 2021. 8. 9. 14:52

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

 

1439번: 뒤집기

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

www.acmicpc.net

 

우리에겐 두가지 선택지가 있다.

모두 0으로 만들지 1로 만들지.

 

주어진 문자열의 처음부터 0으로 뒤집는 경우와 1로 뒤집는 경우를 따로 카운트해서 둘 중 작은 카운트가 답이다.

주의할점은 이전문자가 현재문자와 같은 경우는 카운트를 증가시키지 않아야한다. (연속된 하나 이상의 숫자를 모두 뒤집을수 있기때문)

 

#include <iostream>
#include <string>
#include <algorithm>
using namespace std;

int main()
{
    string s;
    cin >> s;

    int zero = 0, one = 0;


    for(int i = 0; i < s.size(); i++)
    {
        // change to 1
        if(s[i] == '0' && s[i-1] != '0')
        {
            zero++;
        }
        else if(s[i] == '1' && s[i-1] != '1')
        {
            one++;
        }
    }

    cout << min(zero, one);
}