class Result {
public static String isBalanced(String s) {
Stack<Character> stack = new Stack<>();
for (char ch : s.toCharArray()) {
if (ch == '{' || ch == '[' || ch == '(') {
stack.push(ch);
} else {
if (stack.isEmpty()) return "NO";
char top = stack.pop();
if ((ch == '}' && top != '{') ||
(ch == ']' && top != '[') ||
(ch == ')' && top != '(')) {
return "NO";
}
}
}
return stack.isEmpty() ? "YES" : "NO";
}
}
알아야할 개념
- stack 선언 방법 :
Stack<> stk = new Stack<>();
- stack 주요 함수 : .push() / .pop() / .peek()