준비/알고리즘 공부

[스택/큐]유효한 괄호

chuseok 2025. 5. 15. 11:21

문제 설명

괄호 쌍이 맞도록 잘 닫히면 true 그렇지 않으면 false

 

풀이 순서

선입후출이기 때문에 Stack을 활용열리는 괄호 확인

push

if(!stack.isEmpty())

쌍을 확인 후 없으면 return false;

열리는 괄호만 있을 경우를 대비해 마지막으로 stack 비었는지 확인

 

풀이 시작 11:00

풀이 종료 11:17

 

 

다시 풀이

 

 

내 풀이

 

다른 사람의 풀이 참고

class Solution {
    public boolean isValid(String s) {
        Deque<Character> stack = new ArrayDeque<>();
        for(char c:s.toCharArray()) {
            if(isOpen(c)) {
                stack.push(c);
            } else {
                if(!stack.isEmpty()) {
                    if((stack.peek() == '(' && c ==')') ||
                        (stack.peek() == '{' && c == '}') || 
                        (stack.peek() == '[' && c == ']')) stack.pop();
                    else
                        return false; 
                } else {
                    return false;
                }
            }
        }

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

    private boolean isOpen(char c) {
        return c == '(' || c == '{' || c == '['?true:false;
    }
}

새로 알게된 사실

계속 까먹는다!

stack push

queue add

'준비 > 알고리즘 공부' 카테고리의 다른 글

[스택/큐] 신규 아이디 추천  (0) 2025.05.19
[스택/큐] daily tempuratures  (0) 2025.05.19
[완전탐색] 전화번호 목록  (0) 2025.05.15
[완전탐색] 연속된 부분 수열의 합  (0) 2025.05.13
[완전탐색] 예산  (0) 2025.05.13