[알고리즘] Stack을 이용한 올바른 괄호 확인

2024. 8. 13. 22:11WebBack/알고리즘

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

import java.util.Stack;

class Solution {
    boolean solution(String s) {
        boolean answer = true;

        Stack stack = new Stack();
        
        try{
            for(int i = 0; i < s.length(); i++){
                char ch = s.charAt(i);
                
                if(ch == '('){
                    stack.push('(');
                } else if(ch==')'){
                    stack.pop();
                }
                
                answer = stack.empty() ? true : false;

            }
        } catch(Exception e){
            return answer = false;
        }

            
        
        return answer;
    }
}

 

Stack을 자꾸 인식하지 못해서 혹시나해서 import를 시도해봤는데 적용이 된다...???

덕분에 쉽게 해결이 가능했다. 

 

stack이라는 단순한 구조를 이용했다. '('는 stack에 넣고 ')'는 stack에서 하나씩 빼는 식으로 구현했다. 그래서 비어있으면 올바른 괄호이고 아니면 틀렸다고 반환한다. 다만, 문제는 stack에 아무것도 없는데 빼는 상황이 발생한다는 것이다. 그래서 예외 처리를 하였다.