여기서 주의해야할점이 있다.
단순히 '('와 ')'의 갯수가 맞아야만 하는것이 아니다.
무조건 먼저 '('가 나와서 괄호를 열어야하고, 열린만큼 닫는기호가 있어야한다.(닫는 기호가 더 많아서도 안된다)
class Solution {
boolean solution(String s) {
int result = 0;
char[] c = s.toCharArray();
for(int i=0; i<c.length; i++){
if(c[i]=='(')
result++;
else
result--;
}
return result==0;
}
}
처음에 단순히 '(', ')'의 갯수만 같아야하는 줄 알았다....
하지만 5번 11번 답이 자꾸 틀리길래 구글링 해서 알아본 결과
())(() 이 예외가 있다고 한다.
그래서 결국 result 값이 마지막에 0이면 되는 것이 아니라, 매 반복 회차마다 검사하여 0보다 작아지는 경우 return false;를 했더니 정답이었다.!
class Solution {
boolean solution(String s) {
int result = 0;
char[] c = s.toCharArray();
for(int i=0; i<c.length; i++){
if(c[i]=='(')
result++;
else
result--;
if(result<0)
return false;
}
return result==0;
}
}