본문 바로가기
Beakjoon&프로그래머스/Java

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

by 현장 2025. 12. 26.

-Code

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

public class BOJ4949 {
    static Deque<Character> deque;
    public static void main(String[] args) throws IOException {
        BufferedReader br =
                new BufferedReader(new InputStreamReader(System.in));

        while (true) {
            String line = br.readLine();
            deque = new ArrayDeque<>();
            if (line.equals(".")) {
                break;
            }
            for (char ch : line.toCharArray()) {
                // [], ()의 경우만 적용
                if (ch == '[' || ch == '(') {
                    deque.push(ch);
                } else if (ch == ']' || ch == ')') {
                    if (!deque.isEmpty() && isOk(ch)) {
                        // 비어있으면 오류나기 때문에 제외
                        // 조건에 맞으면 pop
                        deque.pop();
                    } else {
                        // 비어있거나 괄호 조건에 맞지 않는 경우
                        deque.push('x');
                        break;
                    }
                }
            }

            System.out.println(deque.isEmpty() ? "yes" : "no");
        }

    }
    // 덱의 마지막 원소와 들어오는 문자 비교
    private static boolean isOk(char ch) {
        return  (ch == ']' && deque.peek() == '[') ||
                (ch == ')' && deque.peek() == '(');
    }
}

'Beakjoon&프로그래머스 > Java' 카테고리의 다른 글

[백준/Java] 18258번 큐 2  (0) 2025.12.26
[백준/Java] 1037번 약수  (0) 2025.12.26
[백준/Java] 9012번 괄호  (0) 2025.12.26
[백준/Java] 10773번 제로  (0) 2025.12.26
[백준/Java] 28278번 스택 2  (0) 2025.12.26