[알고리즘] 백준 - 9012 ( 괄호 ) / 자바

배고픈메꾸리·2021년 6월 5일
0

알고리즘

목록 보기
84/128
import java.util.*;
import java.io.*;

class Main {
	public static void main(String args[]) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		Stack<Character> stack = new Stack<Character>();
		
		int T = Integer.parseInt(br.readLine());
		StringBuilder sb = new StringBuilder();
		for(int t = 0 ; t < T ; t++) {
			String s = br.readLine();
			int len = s.length();
			if(len %2 == 1) {
				sb.append("NO").append("\n");
				continue;
			}
			char c;
			boolean flag = false;
			
			for(int i = 0 ; i < len ;i++ ) {
				c = s.charAt(i);
				
				if(c == '(') {
					stack.push(s.charAt(i));
				}else if(c == ')') {
					if(stack.isEmpty()) {
						flag = true;
						break;
					}
					stack.pop();
				}
			}
			if(!flag && stack.isEmpty()) {
				sb.append("YES").append("\n");
				
			}else if(flag || !stack.isEmpty() ) {
				sb.append("NO").append("\n");
			}
			stack.clear();
		}
		System.out.println(sb);
	}
}

스택공부 하느라 스택을 사용해봤지만 , 스택을 사용하지 않고 갯수를 확인하는 변수 하나로 풀면 더 빨리 풀 수 있을것 같다.

profile
FE 개발자가 되자

0개의 댓글