이 문제는 스택 문제니까 스택으로 풀었습니다.
물론 스택을 안써도 됩니다. 다른 분들 풀이를 보니까 임의의 temp값을 두고 여는 괄호가 나올때 +1을해주고 닫는 괄호가 나올때 -1을 해주고 있습니다. 저도 해당 로직으로 for문으로 사용하였습니다. isEmpty()를 사용할때 temp값은 마이너스를 넘기지 않아야 하므로 바로 retrun false를 출력하면 됩니다.
Stack<Character> s = new Stack<>();
for (int i = 0; i < s.length(); i++) {
if (s.charAt(i) == '(') {
s.push('(');
} else {
if (s.isEmpty()) {
return false;
} else {
s.pop();
}
}
}
제가 스택을 넣고 보니까. 제가 올린 전체코드에는 검증하는 데이터를 넣었었는데, 생각해보니
소괄호만 사용하기 때문에 조건문에는 if (s.isEmpty())
만 들어가도 되겠네요
if (!s.isEmpty()) {
return false;
}