자바/백준

[백준 4949] 균형잡힌 세상

슈슈버거 2023. 1. 5. 20:00

문제

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

 

4949번: 균형잡힌 세상

하나 또는 여러줄에 걸쳐서 문자열이 주어진다. 각 문자열은 영문 알파벳, 공백, 소괄호("( )") 대괄호("[ ]")등으로 이루어져 있으며, 길이는 100글자보다 작거나 같다. 각 줄은 마침표(".")로 끝난다

www.acmicpc.net


내가 작성한 코드

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

public class qor4949 {
    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 input = br.readLine();

            if(input.equals(".")){
                break;
            }

            Stack<Character> st = new Stack<>();
            boolean state = true;
            String result = "";

            for(int i = 0; i<input.length(); i++){
                char word = input.charAt(i);

                if(word == '(' || word == '['){
                    st.push(word);
                }
                else if(word == ')'){
                    if(st.empty() || st.peek() != '('){
                        result += "no";
                        break;
                    }
                    else{
                        st.pop();
                    }
                }
                else if(word == ']'){
                    if(st.empty() || st.peek() != '['){
                        result += "no";
                        break;
                    }
                    else{
                        st.pop();
                    }
                }
            }

            if(result.equals("no")){
                bw.write("no");
            } else if (st.isEmpty()) {
                bw.write("yes");
            }
            else{
                bw.write("no");
            }

            bw.newLine();
        }

        bw.close();
    }
}

'자바 > 백준' 카테고리의 다른 글

[백준 1929] 소수 구하기  (0) 2023.01.26
[백준 10773] 제로  (0) 2023.01.05
[백준 10989] 수 정렬하기 3  (0) 2022.12.01
[백준 2292] 벌집  (0) 2022.12.01
[백준 15829] Hashing  (0) 2022.12.01