반응형
SMALL
본 문제는 swexpertacademy D4 P.1218에 대한 문제 임을 알립니다.
괄호 4종류 () [] {} <>로 이루어진 문자열이 올바른 괄호인지 찾는 문제입니다.
스택을 사용하여 풀었으며, 닫는 괄호가 나올 때 그 괄호와 짝이 맞으면 Pop을 하고 짝이 맞지 않으면 break
4종류의 닫는 괄호가 나오지 않으면 push를 진행하였고 모든 문자열을 돌았을 때 스택이 비어있으면 1을 출력 비어있지 않으면 0을 출력합니다.
#include<iostream>
#include<stack>
#include<string>
using namespace std;
int main(){
for(int t=1; t<=10; t++){
cout<<"#"<<t<<" ";
int nx;
cin>>nx;
stack<char> Ss;
while(!Ss.empty()){
Ss.pop();
}
string s;
cin>>s;
for(int i=0; i<s.size(); i++){
if(s[i]==41){
if(Ss.top()=='('){
Ss.pop();
}
else{
break;
}
}
else if(s[i]==125){
if(Ss.top()=='{'){
Ss.pop();
}
else {
break;
}
}
else if(s[i]==93){
if(Ss.top()=='['){
Ss.pop();
}
else{
break;
}
}
else if(s[i]==62){
if(Ss.top()=='<'){
Ss.pop();
}
else{
break;
}
}
else Ss.push(s[i]);
}
if(Ss.empty()){
cout<<'1'<<endl;
}
else if(!Ss.empty()){
cout<<'0'<<endl;
}
}
return 0;
}
반응형
LIST
'코딩스터디' 카테고리의 다른 글
7102. 준홍이의 카드놀이 (0) | 2019.05.12 |
---|---|
7193. 승현이의 수학공부 (0) | 2019.05.12 |
Stack 배열로 구현 / C (0) | 2019.05.07 |
1222. [S/W 문제해결 기본] 6일차 - 계산기1 (0) | 2019.05.05 |
1210. [S/W 문제해결 기본] 2일차 - Ladder1 (0) | 2019.05.05 |