Programmers/Lv.2

프로그래머스 Lv.2 - 올바른 괄호

junnrecorder 2023. 7. 23. 22:52

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

 

프로그래머스

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

programmers.co.kr

1. 스택 변수를 선언하고, 해당 스택변수에 데이터가 없는 경우, true를 리턴, 아닌 경우에는 false를 리턴하는 것으로 설정

2. 주어진 문자열을 순회하면서 '(' 만 스택 변수에 push

3. 스택 변수에 데이터가 없고 현재 순회한 문자가 ')' 경우에는 false 리턴

4. 스택 변수에 데이터가 있고 현재 순회한 문자가 ')' 경우에는 pop을 실행

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import java.util.Stack;
 
class Solution {
    boolean solution(String s) {
        Stack<Character> st = new Stack<>();
 
        for(int i=0; i<s.length(); i++) {
            char ch = s.charAt(i);
            
            if(st.empty()) {
                if(ch == ')'return false;
                else st.push(ch);
            } else {
                if(ch == ')') st.pop();
                else st.push(ch);
            }
        }
        
        return st.empty() ? true : false;
    }
}
cs