알고리즘

프로그래머스 올바른 괄호 (JAVA)

박카스마시며코딩 2022. 6. 18. 22:35

https://programmers.co.kr/learn/courses/30/lessons/12909

 

코딩테스트 연습 - 올바른 괄호

괄호가 바르게 짝지어졌다는 것은 '(' 문자로 열렸으면 반드시 짝지어서 ')' 문자로 닫혀야 한다는 뜻입니다. 예를 들어 "()()" 또는 "(())()" 는 올바른 괄호입니다. ")()(" 또는 "(()(" 는 올바르지 않은

programmers.co.kr

 

저는 여는 괄호의 개수를 세어 문제를 해결하였습니다.

여는 괄호가 나오면 cnt를 늘려고 닫는 괄호면 cnt를 줄였습니다. cnt가 0 미만으로 떨어지면 그 순간은 )가 하나 더 많은 것이기 때문에 바로 false를 리턴하였습니다.

또한 for문을 다 돌고 cnt가 0이 아니라면 남는 괄호가 존재하는 것이기 때문에 이때도 false를 리턴하였습니다.

 

class Solution {
    boolean solution(String s) {
        boolean answer = checkBracket(s);
        return answer;
    }
    private boolean checkBracket(String s){
        int size = s.length();
        int cnt = 0;
        for(int i = 0 ; i < size ; i++){
            char now = s.charAt(i);
            if(now == '('){
                cnt++;
            }else{
                cnt--;
            }
            if(cnt < 0){
                return false;
            }
        }
        if(cnt != 0){
            return false;
        }
        return true;
    }
}