[코테/JAVA] 스택/큐 : 올바른 괄호

    728x90
    반응형

    2023.01.05

    코테 문제풀이 24주차 01번 문제

     

     

    문제

      ① 스택/큐 : 올바른 괄호

     

      ② 링크

     

    프로그래머스

    코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

    programmers.co.kr

     

     

    접근방법

      Stack

     

     

    풀이

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    import java.util.*;
     
    class Solution {
        /*
         * Date: 2023-01-05
         * Time: 22:13
         */
        boolean solution(String s) {
            return srchProperBracket(s);
        }
     
        /**
         * 올바른괄호찾기
         * @param s 괄호로 이루어진 문자열
         * @return boolean 올바른 괄호 여부
         */
        public static boolean srchProperBracket(String s) {
            /*
             * @Desc
             * 1.String.split() 메소드로 문자열을 하나씩 자른다.
             * 2.여는괄호('(')는 스택에 PUSH
             * 3.닫는괄호(')')는 여는괄호가 스택에 TOP을 가리키고 있으면 괄호를 완성하면서 POP
             * 4.그 외의 경우는 스택에 PUSH
             * 5.스택의 길이를 체크해서 스택이 비어있으면(=모두 올바른 괄호) true를 리턴한다.
             */
            Stack<String> stack = new Stack<>();
            for (String str: s.split("")) {
                if ("(".equals(str))
                    stack.add(str);
                else {
                    if (!stack.isEmpty() && "(".equals(stack.peek())) {
                        stack.pop();
                    } else
                        stack.add(str);
                }
            }
            return stack.size() == 0 ? truefalse;
        }
    }
    cs

     

     

    결과

     

     

    주의사항

      ① Stack을 사용하면 시간 초과 발생

      ② char 자료형을 사용해서 문제를 풀면 효율성 통과

    728x90
    반응형

    댓글