-
728x90
https://www.acmicpc.net/problem/9012 일단 문자열의 첫 문자를 스택에 넣어둔 다음에,
스택 맨 위와 다음 문자열이 '( )'가 되면, pop()하고
스택이 비어있거나 VPS가 되지 않는다면 push()하도록 구현하였다.#include <iostream> #include <stack> #include <string> using namespace std; int main() { int t = 0; cin >> t; cin.ignore(); for (int i = 0; i < t; i++) { stack<char> ps; string s; getline(cin, s); ps.push(s[0]); for (int j = 1; j < s.length(); j++) { if (!ps.empty() && ps.top() == '('&& s[j] == ')') ps.pop(); else ps.push(s[j]); } if (ps.empty() == true) cout << "YES" << endl; else cout << "NO" << endl; } return 0; }
성공 ^◇^
9012번: 괄호
문제 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 부른다. 한 쌍의 괄호 기호로 된 “( )” 문자열은 기본 VPS 이라고 부른다. 만일 x 가 VPS 라면 이것을 하나의 괄호에 넣은 새로운 문자열 “(x)”도 VPS 가 된다. 그리고 두 VPS x 와 y를 접합(conc
www.acmicpc.net
'알고리즘 풀이 > 백준' 카테고리의 다른 글
[10845] 백준 알고리즘 : 큐(C++) (0) 2019.11.20 [1874] 백준 알고리즘 : 스택 수열(C++) (0) 2019.11.20 [9093] 백준 알고리즘 : 단어 뒤집기(C++) (0) 2019.11.19 [10828] 백준 알고리즘 : 스택(C++) - 공부후 (0) 2019.11.15 [10828] 백준 알고리즘 : 스택(C++) - 공부전 (0) 2019.11.14 댓글