Jin's Library

[Sliver Ⅱ] 10799 - 쇠막대기 본문

Algorithm - Java/BOJ - Silver

[Sliver Ⅱ] 10799 - 쇠막대기

Linkin 2025. 10. 17. 12:25
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Stack;
public class BOJ_10799 {
    public static void main(String[] args) throws Exception{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        char[] N = br.readLine().toCharArray();
        Stack<Character> sk = new Stack<>();
        char last = ' ';
        boolean flag = false;
        int iron = 0;
        for(char x : N){
            if(x == '('){
                sk.push(x);
                if(sk.size() > 1) flag = true;
            }
            else{
                if(last == '('){
                    if(sk.size() > 1){
                        iron += sk.size()-1;
                        sk.pop();
                    }else{
                        if(sk.size() != 0) sk.pop();
                    }
                }else if(last == ')'){
                    if(sk.size() > 1){
                        iron += 1;
                        sk.pop();
                    }else{
                        if(flag){
                            sk.pop();
                            iron += 1;
                            flag = false;
                        }else sk.pop(); 
                    }
                }
            }
            last = x;
            // System.out.print(iron + " ");
            // System.out.println(sk);
        }
        System.out.println(iron);
    }
}