백준 9012

HR·2022년 4월 29일
0

알고리즘 문제풀이

목록 보기
25/50

백준 9012 : 괄호

  1. 스택을 이용
  2. ( 면 스택에 push, ) 면 스택에서 pop
  3. pop할게 없거나, 마지막에 스택에 뭔가 남아있으면 결과값이 NO
  4. 마지막에 스택이 비어있으면 YES

정답 코드

#include <iostream>
#include <stack>

using namespace std;

int main() {
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);
	cout.tie(NULL);
	
	int n;
	string s;
	
	cin>>n;
	while(n--) {
		string ans="YES";
		cin>>s;
		int len = s.size();
		
		stack<int> stk;
		for(int i=0; i<len; i++) {
			if(s[i]=='(') {
				stk.push(s[i]);
			}
			if(s[i]==')') {
				if(stk.size()==0) {
					ans="NO";
					break;
				}
				stk.pop();
			}
		}
		
		if(stk.size()) {
			ans="NO";	
		}
		
		cout<<ans<<'\n';		
	}
	
	
	return 0;
}

0개의 댓글