dh-winternagi 님의 블로그
(4949) 균형잡힌 세상 본문
https://www.acmicpc.net/problem/4949
단계별로 풀어보기
16단계(스택, 큐, 덱 1) 4번째
if문 중첩이 많아서 코드가 난잡해 보이지만 기본 논리는 이전 문제와 같다.
대신 괄호 종류가 두개이므로 닫힌 괄호일 때 empty 체크 말고 같은 종류인지 체크도 추가로 해줘야 한다.

#include <iostream>
#include <stack>
using namespace std;
int main()
{
ios::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
while(true){
stack<bool> st;
string s;
bool check= true;
getline(cin, s);
if(s==".") break;
for(char c:s){
if(c=='('){
st.push(false);
}else if(c=='['){
st.push(true);
}else if(c==')'){
if(!st.empty()&&!st.top()){
st.pop();
}else{
check= false;
break;
}
}else if(c==']'){
if(!st.empty()&&st.top()){
st.pop();
}else{
check= false;
break;
}
}
}
cout << (check&&st.empty() ? "yes\n" : "no\n");
}
return 0;
}'백준 (C++) > Solve' 카테고리의 다른 글
| (18258) 큐 2 (0) | 2026.04.15 |
|---|---|
| (12789) 도키도키 간식드리미 (0) | 2026.04.15 |
| (9012) 괄호 (0) | 2026.04.15 |
| (10773) 제로 (0) | 2026.04.15 |
| (28278) 스택 2 (0) | 2026.04.15 |
