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

#include<iostream>
#include<stack>
using namespace std;
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
stack<int> s;
string str;
int count = 0;
cin >> str;
for(int i = 0; i < str.size(); i++) {
if(str[i] == '(' && str[i+1] == ')') {
count += s.size();
i += 1;
}
else if(str[i] == '(') {
s.push(i);
}
else if(str[i] == ')') {
count += 1;
s.pop();
}
}
cout << count << endl;
}
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.Stack;
public class Main {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
Stack<Character> s = new Stack<>();
String str = br.readLine();
int count = 0;
// charAt(i) 함수는 String 타입의 데이터에서 특정 문자를 char 타입으로 변환
for(int i = 0; i < str.length(); i++) {
if(str.charAt(i) == '(' && str.charAt(i+1) == ')') {
count += s.size();
i += 1;
}
else if(str.charAt(i) == '(') {
s.push(str.charAt(i));
}
else if(str.charAt(i) == ')') {
count += 1;
s.pop();
}
}
bw.write(count + "\n");
bw.flush();
br.close();
}
}
