반응형
public class Q_9012 {
public static void main(String[] args) {
Stack<String> stack = new Stack<>();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
try {
//입력 데이터 갯수
String count = bufferedReader.readLine();
for (int i = 0; i < Integer.parseInt(count); i++) {
int psLeft = 0;
int psRight = 0;
String psLine = bufferedReader.readLine();
//입력받은 괄호 문자열 라인 분해
for (int j = 0; j < psLine.length(); j++) {
stack.push(psLine.substring(j, j+1));
}
//닫힌 괄호가 더 많은 경우, 괄호 쌍 미일치(VPS가 아닌 문자열)
while(!stack.isEmpty()) {
String ps = stack.pop();
if(ps.equals("(")) {
++psLeft;
}else if(ps.equals(")")) {
++psRight;
}
if(psRight - psLeft < 0) {
stack.clear();//스택 데이터 초기화
break;
}
}
if (psRight - psLeft == 0) {//괄호 쌍 일치
System.out.println("YES");
} else {//열린 괄호 또는 닫힌 괄호가 더 많은 경우, 괄호 쌍 미일치
System.out.println("NO");
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
반응형
'Algorithm > 백준 문제풀이' 카테고리의 다른 글
백준 1406 - 에디터(자바 구현) (0) | 2021.10.13 |
---|---|
백준 1874 - 스택 수열(자바 구현) (0) | 2021.09.17 |
백준 10828 - 스택(자바 구현) (0) | 2021.06.14 |
백준 1922 - 네트워크 연결(자바 구현) (0) | 2021.05.20 |
백준 1717 - 집합의 표현(자바 구현) (0) | 2021.05.13 |