열린 괄호 닫힌 괄호에 따라 true
, false
를 결정하는 문제이다.
1.항상(
가 있어야만 )
가 있을 수 있다. 즉 먼저 있어야 한다.
2.(
보다 더 많은 수의 )
가 있으면 false
이다.
즉 항상 '('의 수
> ')'의 수
을 만족해야 한다. count
변수에 (
가 오면 +1
, )
가 오면 -1
을 계산해서 0
보다 작게되면 = )
의 수가 (
의 수보다 더 많아지면 false
리턴
for(char temp : list){ if(temp == '(') count++; else{ if((--count) < 0) return false; } }
class Solution {
boolean solution(String s) {
int count = 0; //괄호의 비율
char[] arr = s.toCharArray(); //문자열을 문자 배열로
//괄호 하나씩 비교
for(char chr : arr){
if(chr == '(') count++; //여는 괄호는 +1
else //닫는 괄호는 -1
if(--count < 0) return false; //닫힌 괄호가 더 많으면 올바르지 않은 괄호
}
//여는 괄호의 갯수와 닫는 괄호의 갯수가 다르면 올바르지 않은 괄호
if(count != 0) return false;
//여는 괄호가 먼저 나오고, 갯수가 같다면 올바른 괄호
return true;
}
}