🙇‍♀️올바른 괄호(stack)

괄호가 입력되면 올바른 괄호이면 “YES”, 올바르지 않으면 ”NO”를 출력합니다.

(())() 이것은 괄호의 쌍이 올바르게 위치하는 거지만, (()()))은 올바른 괄호가 아니다.

▣ 입력설명
첫 번째 줄에 괄호 문자열이 입력됩니다. 문자열의 최대 길이는 30이다. 

▣ 출력설명
첫 번째 줄에 YES, NO를 출력한다.

▣ 입력예제 1 
(()(()))(()

▣ 출력예제 1
NO

▣ 입력예제 2 
()()(()())

▣ 출력예제 2
YES

🚀풀이

#include<bits/stdc++.h>
using namespace std;
int main(){
	//freopen("input.txt", "rt", stdin);
	stack<char> s;
	string str;
	cin>>str;
	for(auto x : str){
		if(x=='(') s.push(x);
		else{
			if(s.empty() || s.top()!='('){
				cout<<"NO";
				return 0;
			}
			s.pop();
		}
	}
	if(s.empty()) cout<<"YES";
	else cout<<"NO";
	return 0;
}

이전에 백준에서 풀었던 문제라 바로 풀었다.

웰논 문제!