[백준] 4949번 균형 잡힌 세상 Java

dustle·2023년 3월 16일
1

균형 잡힌 세상

Stack을 이용한 문제입니다.
Stack은 후입선출로 LIFO 입니다.

여는 괄호일 때 스택에 추가하고 닫는 괄호일 때 스택에서 pop 했습니다.

import java.io.*;
import java.util.Stack;
public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

        while (true) {
            String str = br.readLine();
            if (str.equals(".")) break;

            Stack<String> stack = new Stack<>();

            String[] sentence = str.split("");
            for(String word : sentence){
                switch (word) {
                    case ("("):
                    case ("["):
                        stack.push(word);
                        break;
                    case (")"):
                        if(!stack.isEmpty() && stack.peek().equals("("))
                            stack.pop();
                        else stack.push(")");
                        break;
                    case ("]"):
                        if(!stack.isEmpty() && stack.peek().equals("["))
                            stack.pop();
                        else stack.push("]");
                        break;
                }
            }

            if (stack.empty())
                bw.write("yes\n");
            else
                bw.write("no\n");

            bw.flush();
        }

    }
}

0개의 댓글

관련 채용 정보