티스토리 뷰

카테고리 없음

[C++]백준 25381번: ABBC

bouble12 2023. 2. 19. 12:31

BC 를 삭제하는 규칙을 먼저 적용하면 그리디를 이용해 쉽게 풀 수 있다.

삭제 대신 B 를 C 로 바꿔주었다.

#include <iostream>
#include <vector>
#include <string>
#include <queue>

using namespace std;

int main()
{
    string abbc;
    int ans = 0, b = 0, a = 0;
    cin >> abbc;
    queue<int>q;

    for(int i = 0; i < abbc.size(); i++){
        if(abbc[i] == 'B'){
            b++;
            q.push(i);
        }
        if(abbc[i] == 'C' && b > 0){
            b--;
            ans++;
            abbc[q.front()] = 'C';
            q.pop();
        }
    }
    for(int i = 0; i < abbc.size(); i++){
        if(abbc[i] == 'A') a++;
        if(abbc[i] == 'B' && a > 0){
            a--;
            ans++;
        }
    }
    cout << ans;
}

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함