알고리즘/스택 큐

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

연향동큰손 2025. 1. 2. 13:57

 

 

스택 관련된 알고리즘 문제를 풀어봤다면 아주 쉽게 풀 수 있는 문제이다.

 

구현 과정은 다음과 같다.

  • 문자열 순회
  • 여는괄호 "(" 가 나오면 스택에 push
  • 닫는괄호 ")"가 나오면 스택에서 pop()연산 수행 **(닫는 괄호가 나왔을때 스택이 비어있다는 말은 그 뒤로도 올바른 괄호를 만족하지 않으므로 바로 false 리턴)
  • 문자열 순회가 끝났을때 스택이 비어있으면 참, 스택이 비어있지 않으면 거짓 리턴
import java.util.*;

class Solution {
    boolean solution(String s) {
        boolean answer = true;
        Stack<Character> stack = new Stack<>();
        int size = s.length();
        
        for(int i=0; i<size; i++){
            char c = s.charAt(i);
            if(c=='('){
                stack.push(s.charAt(i));
            }
            else{
                if(stack.isEmpty()){
                    return false;
                }
                stack.pop();
            }
        }
        if(stack.isEmpty()){
            answer=true;
        }
        else answer = false;

        return answer;
    }
}