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

urzi·2022년 4월 6일
0

PS

목록 보기
15/36

문제

https://programmers.co.kr/learn/courses/30/lessons/12909

알고리즘

스택

풀이

스택을 이용해서 간단하게 풀었다. (설명 생략)
효율성 테스트에서 실패되는 케이스가 있어서 이것만 언급하겠다.

  1. stack이 비어있으면 넣고 괄호가 ( 이어도 무조건 넣어준다.
  2. 1번 케이스가 아니면 ) 이 문자가 들어왔다는 뜻이 되므로 무조건 스택에서 하나 pop 시켜준다.
  3. 결과적으로는 스택에는 ( 괄호만 들어가게 된다.
  4. 마지막으로 스택에 ( 괄호가 남아있으면 짝이 안맞는거고 스택이 비어있으면 짝이 맞는 것이다.

코드

import java.util.*;

class Solution {
    boolean solution(String s) {
        boolean answer = true;
        Stack<Character> stack = new Stack<>();

        for (int i = 0; i < s.length(); i++) {
            if (stack.isEmpty() || s.charAt(i) == '(') {
                stack.push(s.charAt(i));
            } else {
                stack.pop();
            }
        }

        return stack.isEmpty();
    }
}
profile
Back-end Developer

0개의 댓글