알고리즘/백준

백준 18100 Думский регламент

등반 2021. 12. 24. 00:11

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

 

18100번: Думский регламент

Выведите <<Yes>>, если существует корректный порядок проведения заседания, который мог привести к такой записи, и <<No>>, если ни при каком коррек

www.acmicpc.net

"마우스 우클릭 + T "가 필요한 순간이다.

문장의 갯수 K가 입력 첫째줄에 나온다.

나머지 K줄에 "Add @"또는 "Vote @"가 나온다.(@는 a - z 중 하나의 알파벳이다. 정당의 이름? 이라고 하는 것 같다.)

하나의 정당이 안건을 추가하면(Add @), @에 대해서만 투표해야한다.(Vote @)

안건이 1개이상 추가되어 있을 때, 다른 안건을 추가할 수 있다.

이 경우 최신의 안건에 대해 투표한 후에 이전의 안건에 투표할 수 있다.

 

이 규칙을 따르는 경우 "Yes"를, 아닐 경우 "No"를 출력하는 문제다.

#include <iostream>
#define fio cin.tie(0)->sync_with_stdio(0)
using namespace std;

#include <stack>
int main(){
    fio;
    int N; cin >> N;
    stack<char> party;
    bool flg = true;
    for(int i=0; i < N; i++){
        string op; cin >> op;
        char member; cin >> member;
        if(op == "Add"){
            party.push(member);
        }else{
            if(party.empty()){
                flg = false;
                //break;
            }else{
                char top_ = party.top();
                party.pop();
                if(top_ != member){
                    flg = false;
                    //break;
                }
            }
        }
    }
    if(!party.empty()) flg = false;
    if(flg) cout << "Yes";
    else cout <<"No";
    return 0;
}

 

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

백준 14713 앵무새  (0) 2021.12.24
백준 12789 도키도키 간식드리미  (0) 2021.12.24
백준 15815 천재 수학자 성필  (0) 2021.12.24
백준 11899 괄호 끼워넣기  (0) 2021.12.23
백준 3986 좋은 단어  (0) 2021.12.23