www.acmicpc.net/problem/9012

 

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

+ Recent posts