본문 바로가기
Algorithm Study/BaekJoon (JAVA)

백준 4949_균형잡힌 세상_JAVA

by 창브로 2024. 4. 28.
728x90

https://www.acmicpc.net/problem/4949

import java.io.*;
import java.util.*;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        while (true) {
            String line = br.readLine();
            Stack<Character> stack = new Stack<>();
            String answer = "yes";

            if (line.equals(".")) {
                break;
            }
            
            for (int i = 0; i < line.length(); i++) {

                switch (line.charAt(i)) {
                    case '(':
                        stack.push('(');
                        break;
                    case '[':
                        stack.push('[');
                        break;
                    case ']':
                        if (!stack.isEmpty() && stack.peek() == '[') {
                            stack.pop();
                        } else {
                            answer = "no";
                        }
                        break;
                    case ')':
                        if (!stack.isEmpty() && stack.peek() == '(') {
                            stack.pop();
                        } else {
                            answer = "no";
                        }
                        break;
                }
            }

            if (!stack.isEmpty()) {
                answer = "no";
            }

            System.out.println(answer);

        }

    }
}

 

회고

- 스택을 알고 있으면 쉽게 풀 수 있는 문제였다.

 

'Algorithm Study > BaekJoon (JAVA)' 카테고리의 다른 글

백준 16234_인구 이동_JAVA  (0) 2024.05.05
백준 1918_후위 표기식_JAVA  (0) 2024.04.29
백준 10799_쇠막대기_JAVA  (0) 2024.04.24
백준 10773_제로_JAVA  (0) 2024.04.23
백준 12605_단어순서 뒤집기_JAVA  (0) 2024.04.23