백준 - 단계별로 풀어보기 [9012]
https://www.acmicpc.net/problem/9012
풀이
제가 풀이한 방법
1. '(' 여는괄호와 ')' 닫는괄호의 갯수가 동일해야합니다.
2. 닫는괄호가 나올경우, stack 내부가 비어있으면 안됩니다.
3. No, Yes 출력 시 result 결과값으로 올바른 문자열인지 확인합니다.
Code
#include <iostream>
#include <string>
#include <stack>
using namespace std;
int main()
{
int T;
string s;
int _size = 0;
bool result = true;
cin >> T;
for (int i = 0; i < T; i++) {
stack<char> _stack;
cin >> s;
_size = s.length();
for (int j = 0; j < _size; j++) {
if (s[j] == '(')
_stack.push(s[j]);
else if (s[j] == ')')
{
if (_stack.empty())
{
result = false;
break;
}
else
_stack.pop();
}
}
if (!_stack.empty() || result == false)
cout << "NO" << endl;
else if(result)
cout << "YES" << endl;
result = true;
}
}
'💻 OnlineJudge > Baekjoon' 카테고리의 다른 글
[백준 / BOJ] C++ 18258 큐 2 (0) | 2022.08.19 |
---|---|
[백준 / BOJ] C++ 4949 균형잡힌 세상 (0) | 2022.08.18 |
[백준 / BOJ] C++ 10773 제로 (0) | 2022.08.16 |
[백준 / BOJ] C++ 24416 피보나치 수열 1 (0) | 2022.08.03 |
[백준 / BOJ] C++ 2580 스도쿠 (0) | 2022.08.02 |