https://school.programmers.co.kr/learn/courses/30/lessons/12909
올바른 괄호인지 검사하는 쉬운 방법은 닫는 괄호를 만나면
그 앞쪽에서 가장 가까운 여는 괄호와 짝을 지어 전체 두 괄호의 개수가 동일한지 확인하면 된다.
자료 구조 중 스택
은 후입선출
, 큐
는 선입선출
이므로 스택을 이용하면 된다.
import java.util.Stack;
class Solution {
boolean solution(String s) {
Stack<Integer> stack = new Stack<>();
// 시작과 끝이 올바르지 않음
if(s.charAt(0)==')'|| s.charAt(s.length()-1)=='(') return false;
for(int i=0;i<s.length();i++){
if(s.charAt(i)=='(')
stack.push(1);
else{
if(stack.empty()) return false; // 스택이 비어있으면 짝이 없는것임
stack.pop();
}
}
// 모두 짝지어졌는지 확인
if(stack.size()!=0) return false;
return true;
}
}
GitHub Java-algorithm-practice/프로그래머스/lv2/12909. 올바른 괄호/
import java.util.Stack;
class Solution {
boolean solution(String s) {
Stack<Integer> stack = new Stack<>();
// 시작과 끝이 올바르지 않음
if(s.charAt(0)==')'|| s.charAt(s.length()-1)=='(') return false;
for(int i=0;i<s.length();i++){
if(s.charAt(i)=='(')
stack.push(1);
else{
if(stack.empty()) return false; // 스택이 비어있으면 짝이 없는것임
stack.pop();
}
}
// 모두 짝지어졌는지 확인
if(stack.size()!=0) return false;
return true;
}
}