백준 - 단계별로 풀어보기 [9012]
https://www.acmicpc.net/problem/9012
9012번: 괄호
괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고
www.acmicpc.net
풀이
제가 풀이한 방법
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 |