준비/알고리즘 공부

[스택/큐] 올바른 괄호

chuseok 2025. 2. 1. 18:16

열린괄호와 닫힌 괄호의 짝이 모두 맞으면 올바른 괄호이다.

마지막에 들어온 열린 괄호가 있을 때 닫아줘야 하기 때문에 Stack을 사용했다.

 

풀이 순서

1. 괄호 String 값을 char 배열로 변환하여 반복문을 수행하며 stack에 추가한다.

2. 열린 괄호인 경우, stack에 추가한다.

3. 아닐 경우, stack이 비어있지 않으면 열린 괄호가 있는 것으로 간주하여 짝을 맞춰 제거한다.

4. stack이 비어있는데 닫힌 괄호일 경우, false를 반환한다.

4. 반복문이 종료되고 stack이 비었는지 유무에 따라 결과값을 반환한다.

 

풀이 시작 6:00

풀이 종료 6::14

 

내 풀이

import java.util.*;
class Solution {
    boolean solution(String s) {
        Deque<Character> stack = new ArrayDeque<>();
        
        for(char c: s.toCharArray()) {
            if(c == '(') stack.push(c);
            else if(!stack.isEmpty()) stack.remove();
            else return false;
        }
        

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

다른 사람의 풀이 참고

 

새로 알게된 사실

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

[완전탐색] 소수 만들기  (0) 2025.05.13
[스택/큐] 프로세스  (0) 2025.02.01
[스택/큐]기능개발  (0) 2025.01.30
[알고리즘] 정렬  (0) 2024.06.28
[백준] 15649번: N과 M (1)  (0) 2024.05.23