import java.util.Stack;
class Solution {
boolean solution(String s) {
if (s.startsWith(")")) return false;
if (s.endsWith("(")) return false;
Stack<Character> stack = new Stack<>();
char[] arr = s.toCharArray();
for (char c : arr) {
if (c == '(') stack.push(c);
else if (c == ')' && stack.size() > 0) stack.pop();
else return false;
}
return stack.size() == 0;
}
}
'...())...' 와 같은 상황을 잡기 위해, stack의 사이즈가 0일 때 pop을 실행하지 않도록 if문 조건식을 추가했다.
'Coding Test > 프로그래머스' 카테고리의 다른 글
[프로그래머스/자바] 숫자의 표현 (0) | 2023.10.04 |
---|---|
[프로그래머스/자바] 이진 변환 반복하기 (0) | 2023.10.04 |
[프로그래머스/MySQL] 입양 시각 구하기(1) (0) | 2023.10.01 |
[프로그래머스/MySQL] 조건에 부합하는 중고거래 댓글 조회하기 (0) | 2023.10.01 |
[프로그래머스/MySQL] 자동차 대여 기록에서 장기/단기 대여 구분하기 (0) | 2023.10.01 |