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;
}
}

'알고리즘 & 자료구조 > 문제 풀이' 카테고리의 다른 글
| [프로그래머스 알고리즘 고득점 Kit][정렬][Java] H-Index (0) | 2026.05.26 |
|---|---|
| [프로그래머스 알고리즘 고득점 Kit][동적계획법(Dynamic Programming)][Java] 도둑질 (0) | 2026.05.24 |
| [프로그래머스 알고리즘 고득점 Kit][동적계획법(Dynamic Programming)][Java] 사칙연산 (0) | 2026.05.08 |
| [프로그래머스 알고리즘 고득점 Kit][그리디][Java] 체육복 (0) | 2026.04.30 |
| [프로그래머스 알고리즘 고득점 Kit][정렬][Java] 가장 큰 수 (0) | 2026.04.28 |