본문 바로가기

Coding Test/프로그래머스

[프로그래머스/자바] 올바른 괄호

import java.util.Stack;

class Solution {
    boolean solution(String s) {
        if (s.startsWith(")")) return false;
        if (s.endsWith("(")) return false;
        
        Stack<Character> stack = new Stack<>();
        
        char[] arr = s.toCharArray();
        
        for (char c : arr) {
            if (c == '(') stack.push(c);
            else if (c == ')' && stack.size() > 0) stack.pop();
            else return false;
        }
        
        return stack.size() == 0;
    }
}

'...())...' 와 같은 상황을 잡기 위해, stack의 사이즈가 0일 때 pop을 실행하지 않도록 if문 조건식을 추가했다.