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

 

프로그래머스

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

programmers.co.kr

 

Stack을 사용하는 문제입니다.

문제푸는 방식입니다.

 

문제 접근 순서

1. Stack을 사용하여 진행할것
2. Stack에서 '(' 가 오면 push. 
    2.1 ')'가 온다면 pop 한뒤 pop한 것이 '('가 아니거나 stack에 값이 아무것도 없다면 바로 return false;

3. 마지막이 되었는데 아직도 stack값이 있다면 '('가 아직 남아있으므로 return false;

 

코드입니다.

import java.util.*;
class Solution {
    Stack<Character> stack = new Stack<Character>();
    boolean solution(String s) {
        boolean answer = true;
        
        for(int i=0;i<s.length();i++){
            if(s.charAt(i) == '('){
                stack.push(s.charAt(i));
            }else if(s.charAt(i) == ')'){
                if(stack.isEmpty()) return false;
                
                char temp = stack.pop();
                if(temp =='('){
                    
                }else if(temp == ')'){
                    return false;
                }
            }
        }
        if(!stack.isEmpty()) return false;
        
        return answer;
    }
}

+ Recent posts