제이슨의 개발이야기

프로그래머스 올바른 괄호 자바 본문

코딩테스트

프로그래머스 올바른 괄호 자바

제이쓰은 2021. 9. 2. 18:41
728x90
반응형

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

 

코딩테스트 연습 - 올바른 괄호

괄호가 바르게 짝지어졌다는 것은 '(' 문자로 열렸으면 반드시 짝지어서 ')' 문자로 닫혀야 한다는 뜻입니다. 예를 들어 "()()" 또는 "(())()" 는 올바른 괄호입니다. ")()(" 또는 "(()(" 는 올바르지 않은

programmers.co.kr

안녕하세요! 아까 주식 문제에 이어 바로 올바른 괄호 문제를 풀어봤습니다!

 

괄호 문제라는 것을 보고 전 바로 

 

아!!

 

스택을 이용해야겠다 란 생각을 했습니다

 

제가 알기로는 실제로 컴퓨터가 괄호 열고 닫혔는지 체크 할때도 스택을 이용한다는 것을 알고있습니다!

 

()() 란 문자열이 존재한다면

 

뒤부터 짤라서 

) 와 stack의 top 을 비교해서 () 가 맞으면 pop 다르면 해당 문자 push 하면서 진행 하고

stack의 사이즈가 0이면 true 아니면 false 로 결과를 도출 할 수 있습니다!

 

import java.util.Stack;

class Solution {
    boolean solution(String s) {
        boolean answer = true;

        Stack <Character>stack = new Stack();
        int size = s.length()-1;
        for(int  i =size ; i>=0 ; i--){
            if(stack.empty()){
                stack.push(s.charAt(i));
            }else{
                if(stack.peek()-s.charAt(i)==1){
                    stack.pop();
                }else{
                    stack.push(s.charAt(i));
                }
            }
        }

        if(stack.empty()){
            answer=true;
        }else{
            answer = false;
        }
        return answer;
    }
}
728x90
반응형