[BOJ] 9012 괄호

Algorithm 2023. 1. 11. 16:52
반응형
#include <iostream>
#include <string>
#include <stack>

using namespace std;

int main()
{
    int n = 6;
    string arr[] = {
        "(())())",
        "(((()())()",
        "(()())((()))",
        "((()()(()))(((())))()",
        "()()()()(()()())()",
        "(()((())()("
    };
    stack<char> stack;

    for (int i = 0; i < n; i++) {
        string str = arr[i];
        string result = "";

        //check 
        for (int j = 0; j < str.length(); j++) {
            //cout << str[j] << " ";
            if (str[j] == '(') {
                stack.push(str[j]);
            }
            else {
                if (stack.empty()) {
                    result = "NO\n";
                    break;
                }
                stack.pop();
            }
        }

        if (result == "") {
            if (stack.empty()) {
                cout << "YES\n";
            }
            else {
                cout << "NO\n";
            }
        }
        else {
            cout << result;
        }
        
        
        //clear stack 
        while (stack.size()>0) {
            stack.pop();
        }
    }
	return 0;
}

//결과 출력 
//NO
//NO
//YES
//NO
//YES
//NO
반응형

'Algorithm' 카테고리의 다른 글

[BOJ] C# 10173 니모를 찾아서  (0) 2023.01.12
[BOJ] 1181 단어정렬  (0) 2023.01.12
[BOJ] C# 7576 토마토  (0) 2022.12.28
알고리즘 문제 사이트 및 강의  (0) 2021.07.29
링크드 리스트  (0) 2021.03.19
: