- toc {:toc}
ํ์ด
- ์์ด๋์ด 1 ๋ณ๊ฒฝ๋ ๋๋ง๋ค flip์ 1์ฉ ์ฆ๊ฐ์์ผ ํ์ดํ์! num[0] ์ ํ๊ฒ๊ฐ์ผ๋ก ๋ฐ๊ณ ํ๊ฒ๊ฐ๊ณผ ๊ฐ์ง ์๋ค๋ฉด flip์ ์ฆ๊ฐ์ํค๊ณ ํ๊ฒ๊ฐ์ ๋น๊ตํ ๊ฐ์ผ๋ก ๊ตํํ๋ค.
๋ฌธ์ : 0001100 ์ผ ๋ 0 โ 1, 1 โ 0์ผ๋ก ๊ฐ ๋ 2๋ฒ์ ๋ชจ๋ ์ธ๊ธฐ ๋๋ฌธ์ ํ์ดํ ์ ์๋ค.
- ์์ด๋์ด 2 ๊ทธ๋ ๋ค๋ฉด 0001100 ์์ 0 โ 1์ผ ๋๋ ์ธ์ง ๋ง๊ณ 1 โ 0์ผ๋ก ๊ฐ๋ ๋ท ๋ถ๋ถ๋ง flip์ ์ฆ๊ฐ์ํค์!
๋ฌธ์ : 100000 ์ผ ๋๋ flip์ด ์ฆ๊ฐํ์ง ์๋๋ค.
- ์์ด๋์ด 3 0๊ณผ 1 ์ค ๊ฐ์๊ฐ ์ ์ ์๋ฅผ ์ ํํด์ ํด๋น ๋ญ์น๊ฐ ํ์ง๋ ๊ฒฝ์ฐ flip์ ์ฆ๊ฐ์ํจ๋ค.
๋ฌธ์ : ๋ญ์น์ ์๊ฐ ์ค์ํ ๊ฒ์ด์ง 0๊ณผ 1์ ๊ฐ์๊ฐ flip ํ์์ ์ํฅ์ ๋ฏธ์น์ง ์๋๋ค.
- ์์ด๋์ด 4 0 ๋ญ์น, 1 ๋ญ์น๋ฅผ ๊ฐ๊ฐ ์ผ๋ค. num[0] ์ผ๋ก ์ด๊ธฐ๊ฐ์ ์ค์ ํ๊ณ ํด๋น ๋ญ์น์์ ๋ค๋ฅธ ๋ญ์น๋ก ๋์ด๊ฐ์ ๋ ํด๋น ๋ญ์น๋ฅผ ์นด์ดํธํ๋ค. ๋ญ์น์ ๊ฐ์๋ฅผ ์ ๋ถ ์นด์ดํธํ ํ ๋ ์ค ๋ญ์น์๊ฐ ์์ ์๋ฅผ ๋ฐํํ๋ฉด ๊ทธ ๊ฐ์ด ์ต์ flip ์๊ฐ ๋๋ค.
#include <bits/stdc++.h>
using namespace std;
int main(){
ios::sync_with_stdio(false);
cin.tie(NULL); cout.tie(NULL);
int flip = 0, one=0, zero=0;
string num;
cin >> num;
char target;
if(num.size() == one || num.size() == zero){
cout << 0 << '\n';
exit(0);
}
if(num[0] == '0') zero++;
else one++;
target = num[0];
for(int i = 1; i < num.size(); i++){
if(target != num[i]) {
if(num[i] == '0') zero++;
else one++;
target = num[i];
}
}
if(zero > one) flip = one;
else flip = zero;
cout << flip << '\n';
return 0;
}