stack 응용_괄호검사

호떡·2022년 8월 16일
0

<괄호 검사>
1. 왼쪽 괄호의 개수와 오른쪽 괄호의 개수가 같아야 한다.
2. 같은 괄호에서 왼쪽 괄호는 오른쪽 괄호보다 먼저 나와야 한다.
3. 괄호 사이에는 포함 관계만 존재한다. ( [()] : O 또는 ([]) : O 또는 ([)] : X )


import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Stack;

public class baek9012 {

	public static void main(String[] args) throws NumberFormatException, IOException {

		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		
		int T = Integer.parseInt(br.readLine());
		
		Stack<Character> stack = new Stack<>();
		
		for(int t=0; t<T; t++) {
			String str = br.readLine();
			
			for(int i=0; i<str.length(); i++) {
				char c = str.charAt(i);
				
				if(c == '(') {
					stack.push(c);
				} else {
					if(!(stack.isEmpty())) {
						stack.pop();
					} else {
						stack.push(c);
						break;
					}
				}
			}
			
			if(stack.isEmpty()) {
				System.out.println("YES");
			} else {
				System.out.println("NO");
			}
			
			stack.clear();
			
		}
		
	} //main
}

stack.clear()

반복문이므로 이전에 작업하고 stack에 남아있는 데이터들을 다 지워줘야한다.

0개의 댓글