[프로그래머스] 올바른 괄호 12909 (JAVA)

dia·2023년 10월 6일
0

풀이방식

  1. Stack 생성
  2. 괄호의 시작 '('이 나오면 스택에 저장 push
  3. 괄호의 끝 ')'이 나오면 짝 '('이 있는지 검사
    3-1. 짝이 있으면 짝 제거 pop
    3-2. 짝이 없으면 answer = false
  4. answer가 거짓인지 아닌지 검사
    4-1. 거짓이면 그대로 거짓 return
    4-2. 거짓이 아니면 스택이 비어있는지 검사
    4-2-1. 스택이 비어있으면 true <- 짝이 모두 맞음
    4-2-2. 스택이 안비어있으면 false <- 짝이 안맞음

구현

import java.util.Stack;

public class NUM12909 {
    public static void main() {
        String s = "(())()";
        System.out.println(solution(s));
    }
    public static boolean solution(String s) {
        boolean answer = true;

        Stack<Character> stack = new Stack<>();
        for (int i = 0; i < s.length(); i++) {
            if (s.charAt(i) == '(') {
                stack.push('(');
            } else {
                if (stack.isEmpty()) answer = false;
                else stack.pop();
            }
        }
        if(answer) answer = stack.isEmpty();

        return answer;
    }
}

*다른 분들의 코드를 참고하여 작성했습니다

profile
CS 메모장

0개의 댓글