[ 풀이 방법 ]

스택을 이용하면 풀기 쉽습니다.

1) 문자열을 char 배열로 만들어줌

2) '(' 를 만나면 푸쉬

3) ')' 를 만나면 pop

 

* return false 가 되는 두 가지 경우

1) pop 하는데 스택이 비어 있을 때

2) pop 을 다 했는데 스택에 요소가 남아 있는 경우

 

 

import java.util.Stack;

public class 괄호문제 {

    static Stack<Character> stack = new Stack<>();

    public static void main(String[] args) {
        String s = ")()(";
        System.out.println(solution(s));
    }

    static boolean solution(String s) {
        boolean answer = true;

        char[] ch = s.toCharArray();
        for (int i = 0; i < ch.length; i++) {
            if (ch[i] == '(') {
                stack.push(ch[i]);
            } else if (ch[i] == ')') {
                if(stack.empty()){
                    return false;
                }
                Character pop = stack.pop();
            }
        }

        if(!stack.isEmpty()){
            return false;
        }

        return answer;
    }

}

'프로그래머스' 카테고리의 다른 글

두 큐 합 같게 만들기  (0) 2022.10.09
카펫  (1) 2022.10.08
타겟넘버  (0) 2022.10.06
줄 서는 방법  (0) 2022.10.04
여행 경로  (1) 2022.10.03

+ Recent posts