코드전략
- 연속되는 0와 연속되는 1을 분류해서 카운팅을 함.
- 이후에 최소값을 출력함.
코드
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
using namespace std;
#include <queue>
// 1439 문자열 뒤집기
// 1:37 ~ 1:48
int main(void)
{
//연속되는 값을.
// 0으로 연속되는 값
// 1로 연속되는 값을
// 카운팅해서
// 가장 작은 수를 출력하면 될것 같음??
int zero = 0;
int one = 0;
string ss;
cin >> ss;
int num = -1;
if (ss[0] == '0')
{
num = 0;
zero++;
}
else
{
num = 1;
one++;
}
for (int i = 1; i < ss.length(); ++i)
{
// 연속된 1의 값이 오면 증가
// 연속된 0의 값이 오면 증가.
if (ss[i] == '0')
{
if (num == 1)
{
zero++;
}
num = 0;
}
else
{
if (num == 0)
{
one++;
}
num = 1;
}
//if (iter == '0')
//{
// ++zero;
//}
//else
//{
// ++one;
//}
}
cout << min(zero, one);
}