본문 바로가기

PROGRAMMING/ALGORITHM

[백준] 9012번 JAVA

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

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(System.out));

        int inputNum = Integer.parseInt(reader.readLine());
        StringBuilder sb = new StringBuilder("");
        
        for(int i = 0; i < inputNum; i++) {
//            중간에 삑사리 안나고 잘 진행됫는지에 대한 flag
            boolean isSuccess = true;
            String[] strArr = reader.readLine().split("");
            Stack<String> stack = new Stack<>();
            for (int j = 0; j < strArr.length; j++){
                if(strArr[j].equals("(")){
                    stack.push(strArr[j]);
                }else if(strArr[j].equals(")")){
//                    닫는 괄호가 들어왔는데 isEmpty = true면 isSuccess false하고 break
                    if(!stack.isEmpty()) {
                        stack.pop();
                    }else{
                        isSuccess = false;
                        break;
                    }
                }else{
//                    여닫는 괄호외 다른 문자가 들어오면 fail 처리
                    isSuccess = false;
                    break;
                }
            }
            if(isSuccess && stack.isEmpty()){
                sb.append("YES");
            }else{
                sb.append("NO");
            }
            sb.append("\n");
        }

        writer.write(sb.toString());
        reader.close();
        writer.flush();
        writer.close();
    }
}

 

'PROGRAMMING > ALGORITHM' 카테고리의 다른 글

[백준] 1158번 JAVA 요세푸스  (0) 2021.03.31
[백준] 1406번 JAVA  (0) 2021.03.30
[백준] 9093번 Python  (0) 2021.03.28
[백준] 9093번 JAVA  (0) 2021.03.28
[알고리즘] 빅 오 표기법  (0) 2021.03.17