프로그래머스 올바른 괄호 java

정상민·2023년 7월 24일

문제링크

문제 접근

  • 문제 이름만 봐도 스택써야 할 거 같다
  • 스택 자료구조를 활용하여 괄호 시작인 '('은 스택에 넣고
  • ')'이 나오면 스택에서 pop하여 올바른지 체크
  • 반복문 다 돌고 스택이 비어있지 않을 경우도 false임

코드

import java.util.*;
class Solution {
    boolean solution(String s) {
        boolean answer = true;
        Stack<Character> stack = new Stack<>();
        for(int i=0;i<s.length();i++){
            char now = s.charAt(i);
            if(now == '('){
                stack.push(now);
            }
            else if(now == ')' && stack.empty()){
                return false;
            }
            else if(now == ')' && stack.peek() == '('){
                stack.pop();
            }
            else if(now == ')' && stack.peek() == ')'){
                return false;
            }
        }
        if(!stack.empty()) return false;
        return true;
    }
}

결과

정리

  • 올바른 괄호 처럼 특정 문자열규칙을 확인하는 문제들은 스택자료구조 바로 고민
  • 다 돌고 나서도 스택에 남아있는 값으로 올바른지 체크
profile
안녕하세요! 개인 공부를 꾸준히 기록하는 공간입니다.

0개의 댓글