어제의 나보다 성장한 오늘의 나

[프로그래머스][Level2][Java] 올바른 괄호 본문

알고리즘/프로그래머스(Programmers)

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

NineOne 2020. 12. 26. 23:39

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

 

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

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

programmers.co.kr

문제풀이

전형적인 stack을 활용한 문제였다. 5분만에 푼거 같다. 괄호가 나온다면 stack을 써야 된다고 생각된다.

close 변수를 하나 더 선언할까 생각하였지만 "(" 열린 괄호 갯수만 신경쓰면 되는 문제라 필요가 없었다.

"("가 남아있어도 괄호 갯수가 안 맞기 때문에 처리 해줘야 한다.

코드

import java.util.*;

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

        Stack<Character> open = new Stack<>();
        
        for(int i=0; i<s.length(); i++){
            char temp = s.charAt(i);
            
            if(temp == '(') open.push(temp);
            else{
                if(open.size() ==0) return false;
                open.pop();
            }
        }
        
        if(open.size() >0) return false;
        return answer;
    }
}
Comments