🐣 알고리즘 삐약/💻 백준 삐약

49 삐약 : 백준 10799| 쇠막대기 [바킹독 문제 풀이|Stack|JAVA]

우주수첩 2023. 12. 20. 16:59
728x90

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

 

10799번: 쇠막대기

여러 개의 쇠막대기를 레이저로 절단하려고 한다. 효율적인 작업을 위해서 쇠막대기를 아래에서 위로 겹쳐 놓고, 레이저를 위에서 수직으로 발사하여 쇠막대기들을 자른다. 쇠막대기와 레이저

www.acmicpc.net

 

 

package BKD_0x8_Stack_Application;

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

public class BOJ_10799 {
    public static void main(String[] args) throws IOException {
        Stack<Character> stack = new Stack<>();
        int total=0;
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        char[] arr = br.readLine().toCharArray();

        for(int i=0;i<arr.length;i++){
            switch (arr[i]){
                case '(' : stack.push('('); break;
                case ')':
                    stack.pop();
                    if(arr[i-1]=='(') total+= stack.size();
                    else if(arr[i-1]==')')total+=1;

            }
        }
        System.out.println(total);

    }
}

 

 

 

+= Stack.size 

  • 레이저로 잘릴 수 있는 막대기의 수

 

+1 

  • 막대기의 길이가 끝나여 더해지는 조각의 수

 

728x90