https://programmers.co.kr/learn/courses/30/lessons/60058
function solution(p) {
let left = 0;
let right = 0;
let answer = "";
let u = "";
let v = "";
if(p == "") return answer; // 빈 문자열일 경우
for(let i = 0; i < p.length; i++) {
if(p[i] == "(") {
left += 1;
} else if(p[i] == ")") {
right += 1;
}
if(left < right) {
break; // 올바르지 않은 괄호일 경우
}
}
if(left === right) {
return p; // 올바른 괄호 문자열일 경우
}
// 올바르지 않은 괄호 문자열 처리
for(let j = 0; j < p.length; j++) {
if(p[j] == "(" && p[j+1] == ")") {
u = p.substr(j, 2);
} else {
v += p[j];
}
}
// console.log(`u: ${u}, v: ${v}`)
return answer;
}
접근 방법이 아예 엇나간건 아니지만 내가 작성한 코드는
뒤로 갈수록 답에 끼워맞추기 식으로 작성된게 너무 티난다...😭
재귀함수를 사용해야 한다는 점도 지문만 꼼꼼히 읽으면 파악할 수 있었지만
조건문을 나누는 기준 자체가 잘못됐기도 하고
재귀함수에 대해서는 이론만 살짝 아는 정도라
// 올바르지 않은 괄호 문자열 처리 부터 바로 막혀버렸당 🙄💦
어디서부터 잘못됐는지 알았으니 제대로 이해하고
다음에 비슷한 문제를 만난다면 풀 수 있도록 해야지 👩🏻💻🔥
https://velog.io/@kimtaeeeny/프로그래머스-괄호-변환-javascript-2020카카오공채
https://velog.io/@sso/프로그래머스-Javascript-괄호변환