https://www.acmicpc.net/problem/4949
아이디어:
1. 입력받을 때 string tmp; getline(cin, tmp);로 한줄 입력 받고 각 글자에 auto i로 접근하여 괄호 문자인지 체크
2. tmp == "." 이면 반복문 종료
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
string tmp;
while (true) {
stack<char> S;
getline(cin, tmp);
if (tmp == ".") break;
for (auto i : tmp) {
switch (i) {
case '(':
S.push(i);
break;
case '[':
S.push(i);
break;
case ')':
if (S.empty()) {
S.push(i);
break;
}
else if (S.top() == '(') {
S.pop();
break;
}
else {
S.push(i);
break;
}
case ']':
if (S.empty()) {
S.push(i);
break;
}
else if (S.top() == '[') {
S.pop();
break;
}
else {
S.push(i);
break;
}
}
}
S.empty() ? cout << "yes\n" : cout << "no\n";
}
return 0;
}
'algorithm' 카테고리의 다른 글
백준 12789번 도키도키 간식드리미 (0) | 2025.02.23 |
---|---|
백준 1935번 후위 표기식2, C++ 소수점 출력 (0) | 2025.02.22 |
백준 17608번 막대기 (0) | 2025.02.17 |
백준 12605번 단어순서 뒤집기, C++ stringstream으로 문자열 공백 기준 자르기 (0) | 2025.02.17 |
백준 1874번 스택 수열 (0) | 2025.02.16 |