[프로그래머스] 올바른 괄호 - JAVA(자바)

Jinny·2023년 5월 9일
0

프로그래머스-Java

목록 보기
2/2

1. 🔍 문제

올바른 괄호

2. 🧑🏻‍💻 풀이 방법

처음에 보자마자 대놓고 이건 스택 문제다!싶은 문제였다.

그런데 완전탐색으로 풀면 더 간단하게 풀릴 것 같아서 완탐으로 풀다가
일부 테스트를 통과하지 못하면서 오기로 끝까지 완탐으로 해결했다.

풀이 방법은 다음과 같다.

  1. 맨 처음에 ) 가 나오거나 맨 마지막에 (가 나오면 올바르지 않은 괄호이다.
  2. 이후 완전탐색으로 () 괄호 개수를 센다.
  3. 이 때 ())(() 와 같은 잘못된 순서로 나오는 괄호가 있는지 확인한다.
  4. 괄호 개수가 일치하면 true, 아니면 false를 반환한다.

처음에는 3번 케이스를 생각 못해서 틀렸다.
완전탐색으로 풀 때는 예외 케이스를 주의해야 할 것 같다.

3. 🖥️ 풀이

class Solution {
    boolean solution(String s) {
        int leftCount = 0;
        int rightCount = 0;
        
        if (s.charAt(0) == ')' || s.charAt(s.length() - 1) == '(') {
            return false;
        }
        
        for (int i = 0; i < s.length(); i++) {
            if (s.charAt(i) == '(') {
                leftCount++;
            }
            if (s.charAt(i) == ')') {
                rightCount++;
            }
            if (rightCount > leftCount) {
                return false;
            }
        }
        
        if (leftCount == rightCount) {
            return true;
        }
        
        return false;
    }
}
profile
블로그 이사갔어요. https://jinny-l.tistory.com/

0개의 댓글