본문 바로가기
알고리즘/백준 문제

20310 - 타노스

by HDobby 2023. 3. 7.

https://www.acmicpc.net/problem/20310

 

20310번: 타노스

어느 날, 타노스는 0과 1로 이루어진 문자열 $S$를 보았다. 신기하게도, $S$가 포함하는 0의 개수와 $S$가 포함하는 1의 개수는 모두 짝수라고 한다. 갑자기 심술이 난 타노스는 $S$를 구성하는 문자

www.acmicpc.net

생각해 보기

  • 0과 1의 개수를 처음에 센다.
  • 1이 앞에 오면 사전 순서로 뒤로 밀리게 된다.
  • 0의 사전 순서가 1보다 앞선다.
  • 0은 뒤에서 1은 앞에서 없앤다.

코드

#include<iostream>

using namespace std;

string s;
int zero=0,one=0;
bool arr[501];
void input(){
    cin>>s;
    fill(&arr[0],&arr[500],true);
    for(int i=0,len=s.length();i<len;++i){
        if(s[i]=='0')
            ++zero;
        else
            ++one;
    }
}

void solution(){
    for(int i=0,cnt=0;cnt<one/2;++i){
        if(s[i]=='1'){
            ++cnt;
            arr[i]=false;
        }
    }

    for(int i=s.length()-1,cnt=0;cnt<zero/2;--i){
        if(s[i]=='0'){
            ++cnt;
            arr[i]=false;
        }
    }

    for(int i=0,len=s.length();i<len;++i){
        if(arr[i])
            cout<<s[i];
    }
}

int main(){
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);

    input();
    solution();

    return 0;
}

728x90

'알고리즘 > 백준 문제' 카테고리의 다른 글

22233 - 가희와 키워드  (0) 2023.03.08
19637 - IF 좀 대신 써줘  (0) 2023.03.07
3758 - KCPC  (0) 2023.03.06
2607 - 비슷한 단어  (0) 2023.03.06
17484 - 진우의 달 여행(Small)  (0) 2023.03.03

댓글