문제

제출한 코드

class Solution {
    public boolean isValid(String s) {
        char[] chars = s.toCharArray();

        char[] openBracketList = new char[5001];

        if (!isOpenBracket(chars[0])) {
            return false;
        }

        int openBracketCount = 0;

        for (char c : chars) {
            if (isOpenBracket(c)) {
                openBracketList[openBracketCount++] = c;
            } else {
                try {
                    if (openBracketCount == 0) {
                        return false;
                    }
                    if (c != getProperCloseBracket(openBracketList[openBracketCount - 1])) {
                        return false;
                    } else {
                        openBracketCount--;
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }
        return openBracketCount == 0;
    }

    private boolean isOpenBracket(char character) {
        return character == '('
                || character == '{'
                || character == '[';
    }

    private char getProperCloseBracket(char character) throws Exception {
        switch (character) {
            case '(':
                return ')';
            case '{':
                return '}';
            case '[':
                return ']';
        }
        throw new Exception();
    }
}

잘한점

개선할점