알고리즘 & 자료구조/문제 풀이
[프로그래머스 알고리즘 고득점 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;
}
}
