문 제
소 스 코 드
#include <iostream>
#include <string>
bool VPS(std::string &);
int main() {
int T;
std::cin >> T;
std::string s;
for (int i = 0; i < T; ++i) {
std::cin >> s;
if(VPS(s)) std::cout << "YES" << '\n';
else std::cout << "NO" << '\n';
}
return 0;
}
bool VPS(std::string &s) {
int left{ 0 }, right{ 0 };
if (')' != s[s.length() - 1]) return false;
for (int i = s.length() - 1; i >= 0; --i) {
if (left > right) return false;
if (')' == s[i]) ++right;
else ++left;
}
if (right == left) return true;
else return false;
}
풀 이
-
Stack에 관련된 문제 이지만 String으로 구현을 하는 것이 쉽다고 생각하여 String으로 구현을 하였습니다.
만약 마지막 문자가 " ) "가 아니거나 " (() " 와 같이 '(' 가 ')'의 갯수보다 많을 경우 잘 못 되었다고 생각하여 이렇게 구현 하였습니다.
출 력 값
문 제 출 처
문제 링크 : [ BAEKJOON ] : https://www.acmicpc.net/problem/9012
9012번: 괄호
문제 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)��
www.acmicpc.net
'[ ALGORITHM ] > [ 백 준 ]' 카테고리의 다른 글
[BAEKJOON] 1874번 스택 수열 (0) | 2020.07.24 |
---|---|
[BAEKJOON] 4949번 균형잡힌 세상 (0) | 2020.07.23 |
[BAEKJOON] 10773번 제로 (0) | 2020.07.21 |
[BAEKJOON] 10828번 스택 (0) | 2020.07.20 |
[BAEKJOON] 2004번 조합 0의 개수 (0) | 2020.07.19 |