프로그래머스

[프로그래머스] 괄호 변환 (javascript, 재귀)

해랑쓰 2021. 3. 3. 15:45
728x90
반응형

괄호 방향을 "뒤집어라"를 reverse()로 오해했는데 ( 을 )로 (를 ) 로 바꾸라는 얘기였다.

 

function solution(p) {
    if(p==='')return p;
        let sum=0;
//      2단계
        let u="";
        let v="";
        let right=true;
        for(let i=0;i<p.length;i+=1){
            if(p[i]=='('){
                sum+=1;
                u+=p[i];
            }else{
                sum-=1;
                u+=p[i];
                if(sum<0)right=false;
            }
            if(sum===0){
                v=p.substring(i+1);
                break;
            }
        }
//         3단계
        if(v=="" && right){
            return p;
        }
        if(right){
           return u+=solution(v);
        }else{
            let str="("+solution(v)+")";
            u=u.substring(1,u.length-1);
            for(let i=0;i<u.length;i+=1){
                if(u[i]==='('){
                    str+=")";
                }else str+="(";
            }
            return str;
        }
    
}
728x90
반응형