(
가 들어오면 Stack에 저장해라!
)
가 입력되었을때 )
바로 앞에 (
가 있다면, 그것은 레이저이다.
stack에 쌓여있는 것 만큼 answer에 더 해준다.
)
앞에 (
가 없다면 막대기가 없어지는 것 이므로, stack에 쌓여있는 (
를 하나 pop시키고, answer+1 을 해준다.
package algolecture;
import java.util.Scanner;
import java.util.Stack;
public class Main40 {
public int solution(String str){
int answer = 0;
Stack<Character> stack = new Stack<>();
for(int i=0;i<str.length();i++){
if(str.charAt(i)=='('){
stack.push('(');
}else{
stack.pop();
if(str.charAt(i-1) == '('){
answer += stack.size();
}else
answer++;
}
}
return answer;
}
public static void main(String[] args) {
Main40 T = new Main40();
Scanner kb = new Scanner(System.in);
String str = kb.next();
System.out.print(T.solution(str));
}
}