관리 메뉴

너와 나의 스토리

[BOJ] 20310 타노스 본문

Algorithm/기타

[BOJ] 20310 타노스

노는게제일좋아! 2021. 1. 7. 23:23
반응형

문제: www.acmicpc.net/problem/20310

 

문제 풀이:

  • 0은 문자열 뒤부터 지워주고
  • 1은 문자열 앞부터 지워준다
  • 끝!

 

소스 코드:

#include <iostream>
#include <vector>
#include <map>
#include <algorithm>
#include <string>
#include <string.h>
#include <queue>
#include <set>
using namespace std;


string input, answer;
int zero, one, removeZero, removeOne;
bool removeNum[502];

int main() {

    ios::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);

    cin >> input;
    int len = input.size();
    for (int i = 0; i < len; i++) {
        if (input[i] == '0') zero++;
        else one++;
    }

    for (int i = 0; i < len; i++) {
        if (removeOne == one / 2) break;

        if (input[i] == '1') {
            removeOne++;
            removeNum[i] = true;
        }
    }

    for (int i = len - 1; i >= 0; i--) {
        if (removeZero == zero / 2) break;

        if (input[i] == '0') {
            removeZero++;
            removeNum[i] = true;
        }
    }
    for (int i = 0; i < len; i++) {
        if (removeNum[i]) continue;
        answer += input[i];
    }
    cout << answer << '\n';
    return 0;
}

 

반응형
Comments