매일 BOJ

(매일 BOJ) C++ 9012번 괄호

norepinephrine 2025. 7. 11. 12:00

이번 문제는 실버 4 난이도의 9012번 괄호 문제이다.

 

 

문제의 접근법부터 생각해보자.

문자열에서 ()을 찾아서 발견하면 ()을 문자열에서 삭제하고 다시 ()이 모두 사라질 때까지 탐색한 후 문자열의 크기가 0이라면 YES, 아니라면, NO를 출력하면 되는 문제이다. 

 

아래는 작성한 코드이다.

#include <bits/stdc++.h>
using namespace std;

int main (void){
    ios::sync_with_stdio(0); cin.tie(0);

    int T;
    cin >> T;

    for (int i  = 0; i < T; i++){
        string temp;
        cin >> temp;
        while (temp.find("()") != string::npos) {
            temp.erase(temp.find("()"), 2);
        }
        if (temp.size() == 0) cout << "YES" << '\n';
        else cout << "NO" << '\n';
    }
    
}