스택 관련된 알고리즘 문제를 풀어봤다면 아주 쉽게 풀 수 있는 문제이다.
구현 과정은 다음과 같다.
- 문자열 순회
- 여는괄호 "(" 가 나오면 스택에 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;
}
}
'알고리즘 > 스택 큐' 카테고리의 다른 글
프로그래머스 - 다리를 지나는 트럭[Java] (0) | 2025.03.09 |
---|---|
프로그래머스 - 프로세스(Java) (1) | 2025.01.02 |
프로그래머스 - 기능개발(Java) (2) | 2025.01.01 |
프로그래머스 - 같은 숫자는 싫어(Java) (1) | 2024.12.31 |
백준 10845번 - 큐 (2) | 2024.12.31 |