Problem Solving/SWEA

SWEA- 5432 쇠막대기 자르기

채니_ 2021. 2. 6. 22:46

( -무조건 push

) - )인경우 (인경우

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.util.Scanner;
import java.util.Stack;

public class Stick_cut {
	static int res=0;
	public static void main(String[] args) throws FileNotFoundException {
		System.setIn(new FileInputStream("input/stick.txt"));
		Scanner sc = new Scanner(System.in);
		int T = sc.nextInt();
		for (int tc = 1; tc <= T; tc++) {
			res=0;
			String str = sc.next();
			Stack < Character> stk = new Stack<Character>();
			for (int i = 0; i < str.length(); i++) {
				//스택이 비지 않았을 경우
				if(!stk.isEmpty()){
					// (
                    if(str.charAt(i)=='(') {
						stk.push(str.charAt(i));
					}
                    // )
					else {
                    	// 한칸전이 (
						if(str.charAt(i-1)=='(') {
							stk.pop();
							res += stk.size();
						}
                        //한칸전이 )
                        else {
							res++;
							stk.pop();
						}
					}
				}//스택이 비었을 경우
				else stk.push(str.charAt(i));
			}
			System.out.printf("#%d %d\n",tc, res);
		}
	}

}