문제에서 제시한 대로 구현해서 풀었다.
근데 중간에 StringBuilder 의 함수를 몰라서 찾아서 했다. 실전에서는 떠올릴수 잇어야 한다
import java.util.*;
class Solution {
public String solution(String p) {
String answer = recur(p);
return answer;
}
public String recur(String w)
{
if(w.isEmpty())
return "";
StringBuilder u = new StringBuilder();
int bal = 0;
boolean isCorrect = true;
int vidx = 0;
for(int i = 0; i < w.length(); ++i)
{
if(w.charAt(i) == '(')
{
u.append('(');
bal++;
}
else
{
u.append(')');
bal--;
}
if(bal < 0)
isCorrect = false;
if(bal == 0)
{
vidx = i+1;
break;
}
}
String v = w.substring(vidx, w.length());
if(isCorrect)
{
u.append(recur(v));
return u.toString();
}
else
{
StringBuilder sb = new StringBuilder();
sb.append('(');
sb.append(recur(v));
sb.append(')');
u.deleteCharAt(0);
u.deleteCharAt(u.length()-1);
for(int i = 0; i < u.length(); ++i)
if(u.charAt(i) == '(')
sb.append(')');
else
sb.append('(');
return sb.toString();
}
}
}