문제를 이해하고 있다면 바로 풀이를 보면 됨
전체 코드로 바로 넘어가도 됨
마음대로 번역해서 오역이 있을 수 있음
유효한 괄호 문자열은 빈 문자열(""), "(" + A + ")", A + B이다. 여기서 A와 B는 유효한 괄호 문자열이고, +는 문자열 연결을 나타낸다.
유효한 괄호 문자열 s는 비어 있지 않고, 비어 있지 않은 유효한 괄호 문자열 A와 B를 사용하여 s = A + B로 분할할 수 있는 방법이 존재하지 않는 경우 기본 문자열이다.
유효한 괄호 문자열 s가 주어졌을 때, s의 기본 분해를 고려해라. s = P1 + P2 + ... + Pk에서 P1과 P2는 각각 유효한 기본 괄호 문자열이다.
s의 기본 분해에서 각 기본 문자열의 가장 바깥쪽 괄호를 제거한 후의 s를 반환해라.
#1
Input: s = "(()())(())"
Output: "()()()"
#2
Input: s = "(()())(())(()(()))"
Output: "()()()()(())"
#3
Input: s = "()()"
Output: ""
class Solution {
public String removeOuterParentheses(String s) {
int count = 0;
StringBuilder sb = new StringBuilder();
for(char c : s.toCharArray()){
if (c == '('){
if(count > 0){
sb.append(c);
}
count++;
}
else{
count--;
if(count > 0){
sb.append(c);
}
}
}
return sb.toString();
}
}