알고리즘 & 자료구조/문제 풀이

[프로그래머스 알고리즘 고득점 Kit][스택/큐][Java] 올바른 괄호

수수다 2026. 5. 24. 17:54

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

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 


 닫힌 괄호가 들어왔을 때 stack 안에 열린 괄호가 있으면 열린 괄호를 꺼낸다. () 짝을 맞춰 소멸.
-> 비어있을 때 닫힌 괄호? X

스택을 쓰는 이유는 닫힌 괄호는 가장 나중에 열린 괄호와 짝이 맞아야한다.
( -> (( -> (() -> (
그래서 위로 쌓이는 자료구조를 선택한다.

 

import java.util.*;

class Solution {
    boolean solution(String s) {
        int len = s.length();
        Stack<Character> st = new Stack<>();
        st.push(s.charAt(0));
        for(int i=1; i<len; i++) {
            char c = s.charAt(i);
            if(!st.isEmpty() && c == ')') {
                st.pop();
            } else {
                st.push(c);
            }
        }
        
        return st.size() == 0;
    }
}