코딩테스트/프로그래머스

99클럽 코테 스터디 2일차 TIL, Stack(올바른 괄호)

feel2 2024. 5. 23. 18:32
반응형

1. 문제 정의

2. 문제 접근

Stack을 사용하여 풀면 될 것 같다.

3. 문제 풀이

  1. Stack을 이용하여 "("일때는 넣고, ")" 일때는 Stack에 값이 들어가 있는지 확인 후 처리

4. 코드

import java.util.*;

class Solution {
    boolean solution(String s) {
        Stack<Character> stack = new Stack<>();
        
       for(char ch:s.toCharArray()){
            if(ch == '('){
                stack.add(ch);
            } else {
                if(stack.isEmpty()){
                    return false;
                } else {
                    stack.pop();
                }
//                if(!stack.isEmpty() && stack.peek() == '('){
//                    stack.pop();
//                }
            }
        }

        return !stack.isEmpty() ? false : true;
        
        
    }
}

 

5. 회고

Stack을 사용하여 간단하게 풀 수 있는 문제다. 다만, Stack이 비었을 때를 바로 처리 안하면 시간 정확성 테스트에서 2개가 fail이 난다.

Stack이 비었을 때 ")" 이게 들어오면 어차피 false이므로 바로 처리해주자.

반응형