[ ALGORITHM ]/[ 백 준 ]

[BAEKJOON] 9012번 괄호

HiStar__ 2020. 7. 22. 13:15

문 제

 

소 스  코 드

#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