1439번. 뒤집기

phoenixKim·2022년 9월 1일
0

백준 알고리즘

목록 보기
96/174

코드전략

  • 연속되는 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);
}

 
profile
🔥🔥🔥

0개의 댓글

관련 채용 정보