알고리즘/JAVA
5. 쇠막대기
vivi
2021. 9. 23. 02:31
import java.util.*;
class Main {
public int solution(String str) {
int answer = 0;
Stack<Character> stack = new Stack<>();
int lt = 0;
for (char c : str.toCharArray()) {
if (c == '(') {
stack.push(c);
lt++;
} else if (c == ')') {
if (stack.peek() == '(') {
stack.push(c);
lt--;
answer += lt;
} else {
stack.push(c);
lt--;
answer += 1;
}
}
}
return answer;
}
public static void main(String[] args) {
Main T = new Main();
Scanner kb = new Scanner(System.in);
String str = kb.next();
System.out.print(T.solution(str));
kb.close();
}
}
import java.util.*;
class Main {
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(str.charAt(i));
} else {
stack.pop();
if (str.charAt(i - 1) == '(') {
answer += stack.size();
} else {
answer += 1;
}
}
}
return answer;
}
public static void main(String[] args) {
Main T = new Main();
Scanner kb = new Scanner(System.in);
String str = kb.next();
System.out.print(T.solution(str));
kb.close();
}
}