반응형

괄호가 짝이 맞는지 안 맞는지 검사하는 코드이다.
사실 이건 굉장히 간단한 게… 스택을 이용해서 ‘(‘가 들어오면 모두 스택에 넣고 ‘(‘가 들어오면 스택에 ‘(‘가 있는지만 검사하면 된다.
import java.util.Scanner;
import java.util.Stack;
public class CheckBracket_9012 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int T = scan.nextInt();
scan.nextLine();
Stack<Integer> stack = new Stack<>();
boolean ans; // VPS인지 아닌지를 가르쳐 준다.
String str;
for (int i=0; i<T; i++) {
stack.clear();
ans = true; // ans를 처음에는 true로 설정.
str = scan.nextLine();
for (int j=0; j<str.length(); j++) {
if (str.charAt(j) == '(') { // '('이라면
stack.push((int)str.charAt(j)); // 스택에 넣는다.
} else { // ')'이라면
if (stack.empty()) { // 스택에 비어있다면
ans = false; // VPS가 아님. (짝이 안 맞으므로)
break;
} else { // 스택에 '('가 있을 경우
stack.pop();
}
}
}
if (!stack.empty()) { // 한 줄을 다 돌았는데 스택에 '('가 남아 있다면?
ans = false; // VPS가 아님.
}
System.out.println(ans ? "YES" : "NO");
}
}
}
'컴퓨터 공학 > 백준' 카테고리의 다른 글
[백준] JAVA 자바 : 큐 (10845번) (0) | 2024.01.20 |
---|---|
[백준] JAVA 자바 : 에디터 (1406번) (0) | 2024.01.20 |
[백준] JAVA 자바 : 스택 수열 (1874번) (0) | 2024.01.18 |
[백준] JAVA 자바 : 단어 뒤집기 (9093번) (0) | 2024.01.18 |
[백준] JAVA 자바 : 스택 (10828번) (0) | 2024.01.18 |