올바른 괄호

유태형·2022년 2월 12일
0

문제

문제 분석

열린 괄호 닫힌 괄호에 따라 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;
    }
}



GitHub

https://github.com/ds02168/Study_Algorithm/blob/master/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4/%EC%9E%90%EB%B0%94/Level2/%EC%98%AC%EB%B0%94%EB%A5%B8%EA%B4%84%ED%98%B8.java

profile
오늘도 내일도 화이팅!

0개의 댓글

관련 채용 정보