[c++/백준] 1439번: 뒤집기

조히·2023년 5월 19일
0

PS

목록 보기
71/82

문제 링크

1439번: 뒤집기

풀이

  1. 먼저 0의 구역 개수와 1의 구역 개수를 세는 fCnt, tCnt
  2. 맨 처음 글자에 따라 영역 시작 개수를 센다.
  3. 그 다음 글자부터 끝까지 체크를 하는데, 현재 글자가 이전 글자(영역) c와 다를 경우 구역이 나누어지기 때문에 해당 글자의 영역 개수를 추가하고 이전 글자(영역) c를 갱신한다.
  4. 그렇게 만들어진 fCnttCnt 값 중 작은 값을 출력

코드

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

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

	int fCnt = 0;
	int tCnt = 0;

	char c = s[0];
	if (c == '0')
	{
		fCnt++;
	}
	else
	{
		tCnt++;
	}

	for (int i = 1; i < s.size(); i++)
	{
		if (s[i] != c)
		{
			if (s[i] == '0') fCnt++;
			else tCnt++;
			c = s[i];
		}
	}

	int answer = fCnt > tCnt ? tCnt : fCnt;
	cout << answer << endl;

	return 0;
}
profile
Juhee Kim | Game Client Developer

0개의 댓글