본문 바로가기
개발/백준 & 프로그래머스

[백준]9012번 괄호 c/c++

by 성장하고픈개발자 2022. 6. 27.
728x90
728x90

문제


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

 

 

9012번: 괄호

괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고

www.acmicpc.net

 

9012번 문제 설명

 

코드


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

int main()
{

	int tc;
	cin >> tc;  //테스트케이스

	string ps;
	for (int i = 0; i < tc; i++) {
		cin >> ps;  //문자열 입력
		stack<char> stk; //스택 초기화
		for (int j = 0; j < ps.length(); j++) {
			if (ps[j] == '(') { //j번째 원소가 '(' 일때
				stk.push(ps[j]);  //원소 스택에 push
			}
			else if(ps[j]==')'){  //j번째 원소가 ')' 일때
				if (!stk.empty()&&stk.top()=='(') 
                //스택이 비어있지 않고, 맨 위 원소가 '(' 일때
					stk.pop();  //'('을 pop
				else {
					stk.push(ps[j]);  //')'을 push
				}
			}
		}
		if (stk.empty())
			cout << "YES" << endl;  //스택이 비어있을때
		else
			cout << "NO" << endl;  //스택이 비어있지 않을때
	}

	return 0;
}
728x90
728x90