Algorithm
올바른 괄호 - Java
한둥둥
2024. 10. 21. 17:00
올바른 괄호 (스택/큐)
전형적인 Stack 문제이다.
그다지 어렵지 않았지만, 최대한 인덴트 1을 넘기지 않으려고 노력하였고, 그에따라서 processCharacter라는 메소드를 만들어서 문제를 풀었다.
또한 IllegalArgumentException을 사용하여 에러가 나왔을 때, try -catch문을 사용하여 에러를 잡고 이를 false로 던져주도록 만들었다.
마지막 return 은 stack.isEmpty()를 통해서 비어있는지 확인해서 리턴했다.
import java.util.*;
class Solution {
boolean solution(String s) {
Stack<Character> stack = new Stack<>();
try{
s.chars()
.mapToObj(ch -> (char) ch)
.forEach(ch -> processCharacter(ch, stack));
} catch(IllegalArgumentException e) {
return false;
}
return stack.isEmpty();
}
private static void processCharacter(char ch, Stack<Character> stack) {
switch(ch) {
case '(' -> stack.push(ch);
case ')' -> {
if(stack.isEmpty()) throw new IllegalArgumentException("순서 값 오류");
stack.pop();
}
}
}
}