• 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;
}