9012번: 괄호
괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고
www.acmicpc.net
코드 설명
string배열과 stack을 이용하여 풀이하였다. 스택+ 제약조건을 걸어주면 금방 풀린다.
처음에 제약조건을 단순히 top과 들어오는 값과 다르면 pop으로 제거해줬는데 그러면 당연히 예외케이스가 생긴다
(2번case)
문제읽고 알고리즘생각하고 설계해본후 예외케이스 없는지 꼭 다시 확인해보자 !
코드
#include<iostream>
#include<vector>
#include<stack>
using namespace std;
int N;
int check[100];
int main() {
cin >> N;
string abc;
for (int i = 0; i < N; i++) {
cin >> abc;
stack<char> st;
for (int j = 0; j < abc.size(); j++) {
if (!st.empty())
{
if (st.top() == '(' && abc[j] == ')')
st.pop();
else st.push(abc[j]);
}
else st.push(abc[j]);
}
if (st.empty()) check[i] = 1;
else check[i] = 2;
}
for (int i = 0; i < N; i++) {
if (check[i] == 1) cout << "YES" << endl;
else cout << "NO" << endl;
}
return 0;
}
'알고리즘 공부 > 백준' 카테고리의 다른 글
[백준] 촌수계산 (0) | 2021.05.04 |
---|---|
[백준] 단지번호붙이기 (0) | 2021.05.02 |
[백준] 문자열 (0) | 2021.05.02 |
[백준] 섬의 개수 (0) | 2021.04.28 |
[백준] 바이러스 (0) | 2021.04.27 |