class Solution {
boolean solution(String s) {
int n = 0;
for (int i = 0; i < s.length(); i++) {
if (s.charAt(i) == '(') n++;
else n--;
if (n < 0) return false;
}
return n == 0;
}
}
스택 문제인데
스택의 동작을 생각했을 때 인덱스의 변화를 생각하며 풀어본 코드이다.
'(' 입력 시 n++
')' 입력시 n-- 로 셈 해서,
n 이 음수가 되면 잘못된 괄호 묶음이고,
문자열 탐색이 끝났을 때 n == 0 이 false면 잘못된 괄호 묶음이다.