[lv.2] 올바른 괄호

RTUnu12·2024년 2월 19일
0

Programmers

목록 보기
8/41

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

  • 문제
    올바른 괄호인지 조사

  • 풀이
    올바른 괄호가 아닌 조건은 다음이 있다. 이에 따라 작성하면 된다.
    1) 끝이 (일 경우 -> 시작하자마자 바로 조사하여 시간 단축
    2) (이면 cnt++, )이면 cnt--, 이때 중간에 cnt가 음수인 경우 -> )의 짝이 없음 -> false
    3) 다 끝나고 나서 cnt가 0이 아닌 경우 -> (의 짝이 없음 -> false
    스택 문제지만 스택을 안쓰고도 할 수 있다.

  • 코드

class Solution {
    boolean solution(String str) {
        if(str.charAt(str.length()-1)=='(') return false;
        int cnt = 0;
        for(int i=0; i<str.length(); i++){
            char now = str.charAt(i);
            if(now == '(') cnt++;
            else cnt--;
            if(cnt<0) return false;
        }
        if(cnt!=0) return false;
        else return true;
    }
}
profile
이제 나도 현실에 부딪힐 것이다.

0개의 댓글