본문 바로가기
Beakjoon&프로그래머스/Java

[LeetCode/Java] 20. Valid Parentheses

by 현장 2025. 11. 19.

-Code

class Solution {
    static Stack<Character> stack;
    public boolean isValid(String line) {
        // 스텍 사용을 위한 덱 선언
        stack = new Stack<>();
        // 검사
        for (char c : line.toCharArray()) {
            if (checkLast(c)) {
                // 마지막이랑 맞는 괄호인 경우
                stack.pop();
            } else {
                // 여는 괄호의 경우
                stack.push(c);
            }
        }
        // 스텍이 비어있으면 true
        return stack.isEmpty();
    }
    // 마지막 값 체크 로직
    private static boolean checkLast(char c) {
        // 비어있는 경우 false
        if (stack.isEmpty()) return false;
        // 아닌 경우 괄호 일치기 true 아닌 경우 false
        if (stack.peek() == '(' && c == ')') return true;
        else if (stack.peek() == '{' && c == '}') return true;
        else if (stack.peek() == '[' && c == ']') return true;
        else return false;
    }
}