No Rules Rules

뒤집기 (feat. 백준, 1439번) 본문

생활/코테

뒤집기 (feat. 백준, 1439번)

개발하는 완두콩 2022. 11. 23. 12:28
728x90
반응형

뒤집기
https://www.acmicpc.net/problem/1439

 

1439번: 뒤집기

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

www.acmicpc.net

 

// woohyeon.kim
// kim519620.tistory.com
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int main() {
	ios::sync_with_stdio(false), cin.tie(NULL);
    string str;
    cin >> str;
    register int cnt1 = 0, cnt2 = 0, check = -1;
    for(auto& ch : str){
        if(check == -1){
            if(ch == '0')
                ++cnt1, check = 0;
            else
                ++cnt2, check = 1;
        }
        else{
            if(check == 0 && ch == '1')
                ++cnt2, check = 1;
            else if(check == 1 && ch == '0')
                ++cnt1, check = 0;
        }
    }
    cout << min(cnt1, cnt2);
    return 0;
}
// *&)*@*

 

반응형
  1. 1이 연속된 구간과 0이 연속된 구간을 서로 나누었을때, 그중 작은 개수가 정답입니다.
  2. '11001100110011000001'은 11001100110011000001 이므로 1이 연속된 구간 5개, 0이 연속된 구간 4개 입니다.
  3. '00000001'은 00000001 이므로 1이 연속된 구간 1개, 0이 연속된 구간 1개 입니다.
728x90
반응형
Comments