Computer Science/Algorithm Problem

백준] 1439 - 뒤집기

TwinParadox 2018. 6. 6. 01:56
728x90

시간 제한 : 2초

메모리 제한 : 128MB




입력

첫째 줄에 문자열 S가 주어진다. S는 백만보다 작은 길이




출력

첫째 줄에 다솜이가 해야하는 행동의 최소값을 출력한다.




소스코드

#include <iostream>
#include <string>
using namespace std;
int main(void)
{
	string s;
	int len, zeropart = 0, onepart = 0, cnt = 0;
	cin >> s;
	len = s.length();

	if (s[0] == '0')
		zeropart = 1;
	else
		onepart = 1;
	for (int i = 1; i < len; i++)
	{
		if (s[i] != s[i - 1])
		{
			if (s[i] == '0')
				zeropart++;
			else
				onepart++;
		}
	}
	cout << ((onepart < zeropart) ? onepart : zeropart);
}




Tip

0과 1이 바뀌는 순간, 0과 1로 구성된 덩어리들을 카운트를 해주면서 덩어리가 가장 작은 것을 출력하면 된다.




728x90

'Computer Science > Algorithm Problem' 카테고리의 다른 글

백준] 1138 - 한 줄로 서기  (0) 2018.06.08
백준] 1812 - 사탕  (0) 2018.06.07
백준] 1531 - 투명  (0) 2018.06.05
백준] 1855 - 암호  (0) 2018.06.04
백준] 2966 - 찍기(COCI 2008/2009)  (0) 2018.05.29