백준

백준 10799 - Java

으엉어엉 2024. 9. 15. 15:44
728x90

 

 

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Stack;

public class Pipe {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String input = br.readLine();

        Stack<Character> stack = new Stack<>();
        int result = 0;

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

            if (c == '(') {
                stack.push(c);
            } else {
                stack.pop(); // 닫는 괄호가 나오면 무조건 스택에서 하나를 pop

                if (input.charAt(i - 1) == '(') {
                    // 레이저인 경우 (바로 직전에 '('가 있었음)
                    result += stack.size(); // 현재 남아있는 쇠막대기의 개수만큼 잘림
                } else {
                    // 쇠막대기의 끝인 경우
                    result += 1; // 막대기가 끝나면 하나의 조각이 추가됨
                }
            }
        }

        System.out.println(result);
    }
}
728x90

'백준' 카테고리의 다른 글

백준 17299 - Java  (0) 2024.09.19
백준 17298 - Java  (1) 2024.09.17
백준 17413 - Java  (0) 2024.09.15
백준 11729 - Java  (1) 2024.09.14
백준 2447 - Java  (0) 2024.09.14