[C++] 백준 4949 : 균형잡힌 세상

Kim Nahyeong·2022년 1월 17일
0

백준

목록 보기
64/157

#include <iostream>
#include <stack>
using namespace std;

string str;
char c;
int main(int argc, char **argv){
    do{
        getline(cin, str); // 한 줄 입력받기
        stack<int> s;
        bool flag = true;
        for(int i=0; i<str.size(); i++){
            c = str[i];
            if(c == '('){
                s.push(1);
            } else if(c == ')'){
                if(!s.empty() && s.top() == 1){
                    s.pop();
                } else {
                    flag = false;
                    break;
                }
            } else if(c == '['){
                s.push(2);
            } else if(c == ']'){
                if(!s.empty() && s.top() == 2){
                    s.pop();
                } else {
                    flag = false;
                    break;
                }
            }
        }

        if(!s.empty()){
            flag = false;
        }

        if(str != "."){
            if(flag){
                printf("yes\n");
            } else {
                printf("no\n");
            }
        }
    } while(str != ".");

    return 0;
}

전형적인 스택 문제. 하지만 공백을 입력받지 못해서 꽤나 헤메었다!
getline(cin, str); // 한 줄 입력받기
를 통해서 한 줄 전체를 입력받을 수 있다.

0개의 댓글