BOJ. 9012

Opusdeisong·2022년 12월 27일
0

백준 Class2

목록 보기
27/31


#BOJ9012

괄호

이 문제는 Parenthesis matching이라는 문항으로 데이터 구조 시간에 스택을 배우면서 예제로서 해결해보았다. 실제 시험에도 출제되었던 걸로 기억을 한다. 학교에서 배운 것을 실제 문제에 적용해보기 가장 좋은 문제 중 하나라고 생각한다. 이 문제 이후에 4949번 균형 잡힌 세상이라는 문항이 나오는데 딱 반 단계 더 발전된 문제여서 이 문제를 다룬 후에 그 문항까지 다루어 본다면 스택 복습을 하는데 많은 도움이 될거라고 생각한다. 클래스2 뒤로 갈수록 자료구조를 활용하면서 조건이 여러개인 문항이 점점 많이 나오는데 그 징검다리 역할을 해주는 문항이다. 스택에 대한 개념만 알고 있다면 간단하게 해결할 수 있기 때문에 코드로 바로 넘어가 보도록 하겠다.

# include <iostream>
# include <queue>
# include <string>
using namespace std;

int main(){
   int T;
   cin >>T;
   for (int i = 0; i < T; i++){
       int err = 0;
       queue<char> ans;
       string temp;
       cin >> temp;
       for (int j = 0; j < temp.length(); j++){
           if (temp[j] == '('){
               ans.push('(');
           }
           else if (!ans.empty() && temp[j] == ')'){
               ans.pop();
           }
           else {
               err++;
               break;
           }
       }
       if (!ans.empty()){
           cout << "NO" << "\n";
       }
       else if (err > 0) cout << "NO" << "\n";
       else cout << "YES" << "\n";
   }
}
profile
Dorsum curvatum facit informaticum.

0개의 댓글