336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
문제 : https://algospot.com/judge/problem/read/BRACKETS2
스택을 이용해서 짝이 순서대로 맞는지 확인하면 된다.
계속 컴파일 에러가 나길래 왜지 했더니 s.empty()를 다른 곳에 붙여 넣기 해서 그랬다.. ㅜㅜ
#include <iostream>
#include <stack>
#include <string>
using namespace std;
int main(){
ios_base::sync_with_stdio(false);
cin.tie(NULL);
int t, i;
cin >> t;
while(t--){
stack<char> s;
string str;
cin >> str;
for(i = 0 ; i < str.size(); i++){
if(str[i] == '{' || str[i] == '[' || str[i] == '(')
s.push(str[i]);
else if(str[i] == '}'){
if(s.empty() || s.top() != '{'){
cout << "NO\n";
break;
}
s.pop();
}else if(str[i] == ']'){
if(s.empty() || s.top() != '['){
cout << "NO\n";
break;
}
s.pop();
}else if(str[i] == ')'){
if(s.empty() || s.top() != '('){
cout << "NO\n";
break;
}
s.pop();
}
}
if(i != str.size())
continue;
if(s.empty())
cout << "YES\n";
else
cout << "NO\n";
}
return 0;
}
'PS > 알고스팟 문제풀이' 카테고리의 다른 글
[알고스팟 JOSEPHUS] 조세푸스 문제 (조세퍼스) (0) | 2019.08.08 |
---|---|
[알고스팟 PASS486] 비밀번호 486 (0) | 2019.08.05 |