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 |