
내 코드
package BOJ;
import java.util.*;
public class Q9012 {
public static void main(String args[]) {
Scanner sc = new Scanner(System.in);
Stack<Character> stack = new Stack<>();
int T = sc.nextInt();
char ch = ' ';
int cnt = 0;
for(int i = 0; i < T; i++){
String str = sc.next();
for(int j = 0; j < str.length(); j++){
ch = str.charAt(j);
stack.push(ch);
if(stack.push(ch) == '('){
cnt++;
} else if(stack.push(ch) == ')'){
cnt--;
}
if(cnt < 0){
break;
}
}
if(cnt == 0){
System.out.println("YES");
} else {
System.out.println("NO");
}
stack.clear();
cnt = 0;
}
}
}
- stack을 사용해서 괄호를 push하고, 괄호의 형태에 따라 count를 더하거나 빼는 방식을 사용해서 괄호 검사를 진행했다.
- 괄호를 넣는 동안 count가 음수가 되면 반복문을 break!
https://www.acmicpc.net/problem/9012