✔ 내 답-> 정답
(은 stack에 쌓는다
)이 나오면 stack에 있는 ( 하나를 꺼낸다.
단, ( 가장 최근에 넣은 즉 )직전에 넣은 것이라면
stack에 남아있는 사이즈만큼 더하기
아니라면 +1만 하기 남은 막대기 더하는 것이다.
import java.util.*;
public class Main{
public static int solution(String input){
int answer=0;
int r=0;
Stack<Character> st = new Stack<>();
char[] arr = input.toCharArray();
for(int i=0;i<arr.length;i++){
if(arr[i]=='(') {
st.push('(');
}
else{
st.pop();
if(i>=1&&arr[i-1]=='(') answer+=st.size();
else answer+=1;
}
}
return answer;
}
public static void main(String[] args){
Scanner kb = new Scanner(System.in);
String input = kb.next();
System.out.println(solution(input));
}
}