📝문제

📝알고리즘
//괄호들을 입력받고
//스택을 생성하고 잘려진 쇠막대기 총 개수 num을 초기화
//괄호 문자열을 순회하며 다음을 반복함
//'('면 스택에 push하고
//')'이면 일단 스택 최상단을 제거함
//이전 괄호가 '('이면 스택에 남아 있는 괄호들을 모두 num에 더함
//이전 괄호가 '('가 아니면 num++함
//num 출력
📝구현
import java.io.*;
import java.util.*;
public class Main{
public static void main(String[] args)throws IOException{
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
String brackets=br.readLine();
Stack<Character> stack= new Stack<>();
int num=0;
for(int i=0; i<brackets.length();i++){
if(brackets.charAt(i)=='('){
stack.push('(');
}
else{
stack.pop();
if(brackets.charAt(i-1)=='('){
num+=stack.size();
}
else{
num++;
}
}
}
System.out.print(num);
}
}
📌기록하고 싶은 내용
괄호 이용하는 문제➡️스택을 이용해서 효율적으로 풀 수 있는지 우선적으로 점검하기!