본문 바로가기
알고리즘/스택, 큐

[알고리즘] 올바른 괄호 with Java, push(),pop(),size()

by VIPeveloper 2022. 3. 18.
반응형

이번 챕터는 stack, queue에 대해 공부해보는 시간이다. 스택 큐는 자신있는 알고리즘 부분중 하나인데, 새로운 것이 있으면 적극 배워볼 생각이다.

오늘 배운 것

1. 문제 풀이

import java.util.*;

public class Main {

    public static void main(String[] args) {
        Scanner kb = new Scanner(System.in);
        String s = kb.next();

        solution(s);
    }

    private static void solution(String s) {
        char[] chars = s.toCharArray();
        Stack<Character> stack = new Stack<>();

        for(char c : chars){
            if(c == '('){
                stack.push(c);
            }else{
                // ))))))) 반례처리
                if (stack.size() == 0) {
                    System.out.println("NO");
                    return;
                }
                stack.pop();
            }
        }
        if (stack.size() == 0) {
            System.out.println("YES");
        }else{
            System.out.println("NO");
        }
    }
}

. 강사님의 코드는 stack.size() == 0 이 아닌 isEmpty()를 이용하셨다.

import java.util.*;

public class Main {

    public static void main(String[] args) {
        Scanner kb = new Scanner(System.in);
        String s = kb.next();

        solution(s);
    }

    private static void solution(String s) {
        char[] chars = s.toCharArray();
        Stack<Character> stack = new Stack<>();

        for(char c : chars){
            if(c == '('){
                stack.push(c);
            }else{
                // ))))))) 반례처리
                if (stack.size() == 0) {
                    System.out.println("NO");
                    return;
                }
                stack.pop();
            }
        }
        if (stack.isEmpty()) {
            System.out.println("YES");
        }else{
            System.out.println("NO");
        }
    }
}
반응형