[ 프로그래머스 ] 프로그래머스 - 올바른 괄호

NaHyun_kkiimm·2021년 7월 23일
0

알고리즘

목록 보기
2/18
post-thumbnail

< 문제 정보 >

[ 문제 ]

'(' 문자가 열려있으면, 짝지어 ')'가 올바르게 닫혀있어야 괄호가 바르게 짝지었다라고 할 때, 사용자로부터 오직 '(', ')'로 이뤄진 문자열을 받아 해당 문자열이 바르게 짝지어있다면 true를, 아니라면 false를 반환하자


[ 예시 ]

(1) "()()" 또는 "(())()" 는 올바른 괄호입니다.
(2) ")()(" 또는 "(()(" 는 올바르지 않은 괄호입니다.

[ 규칙 ]

  • 문자열 s의 길이 : 100,000 이하의 자연수
  • 문자열 s는 '(' 또는 ')' 로만 이루어져 있습니다.

[ 프로그래머스 ]


< 풀이 >

  • 열린 괄호이면 횟수를 증가시키고, 닫힌 괄호이면 횟수를 감소시킨다.
  • 만약 횟수가 0보다 작아진다면, 올바르지 않는 문자열이다.
    - 올바른 괄호이라면, 연산 중 닫힌 괄호의 갯수가 열린 괄호의 갯수보다 많을 수 없다.
    Ex) 횟수가 0보다 작은 문자열의 경우 : "())" // 횟수가 -1이 된다.
  • 최종 계산 값이 0이라면 올바른 문자열, 그렇지 않다면 올바르지 않는 문자열이다.
    - 올바른 괄호는 열린 괄호의 갯수와 닫힌 괄호의 갯수가 같다.

<코드>

    boolean solution(String s) {
        boolean answer = true;
        int count=0;
        // [실행] 버튼을 누르면 출력 값을 볼 수 있습니다.
        System.out.println("Hello Java");
        for(int i=0;i<s.length();i++){
            if (s.charAt(i)=='(')
                count++;
            else if (s.charAt(i)==')')
                count--;
            if (count < 0)
                return false;
        }
        if (count > 0)
            answer = false;
        if (count == 0)
            answer = true;
        return answer;
    }
}
profile
이 또한 지나가리라

0개의 댓글