www.acmicpc.net/problem/9012

 

9012번: 괄호

괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고

www.acmicpc.net

 

문제풀이

  • '('은 Stack에 계속 담음
  • ')'은 Stack에 '('로 끝날때 '(' 을 pop 시켜준다.
    • 만약 Stack 비어있으면 break

Java

package Z_ShinHanCard_Prepare;
/*
 *  6
	(())())
	(((()())()
	(()())((()))
	((()()(()))(((())))()
	()()()()(()()())()
	(()((())()(
*/
import java.io.BufferedReader;

import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;

public class D3백준9012_괄호_stack {
	static int T,n,m;
	public static void main(String[] args) throws Exception {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int T= Integer.parseInt(br.readLine());
		Stack<Character> stack = new Stack<Character>();
		boolean check = true;
		for(int i = 0 ; i < T ; i++)
		{
			String input = br.readLine();
			stack.clear();
			for(int j = 0 ; j < input.length() ; j++)
			{
				check =true;
				char temp = input.charAt(j);
				if(temp == '(')
				{
					stack.push(temp);
				}else if(temp ==')')
				{
					if(stack.isEmpty())
					{
						check = false;
						break;
					}
					stack.pop();
					
				}
				 
			}
			if(check ==true && stack.isEmpty())
				System.out.println("YES");
			else
				System.out.println("NO");
			
 		}
	}
}

 

+ Recent posts