[프로그래머스] 괄호 변환 - JavaScript

이은빈 EUNBIN·2021년 1월 14일
0

📌 문제

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;
}
  1. 올바른 괄호인지 아닌지 확인하는 변수 설정 부족
  2. 올바른 괄호일 때와 아닐 때의 경우를 나누는 기준 보충 필요
  3. 재귀함수 학습 부족

접근 방법이 아예 엇나간건 아니지만 내가 작성한 코드는
뒤로 갈수록 답에 끼워맞추기 식으로 작성된게 너무 티난다...😭

재귀함수를 사용해야 한다는 점도 지문만 꼼꼼히 읽으면 파악할 수 있었지만
조건문을 나누는 기준 자체가 잘못됐기도 하고
재귀함수에 대해서는 이론만 살짝 아는 정도라
// 올바르지 않은 괄호 문자열 처리 부터 바로 막혀버렸당 🙄💦

어디서부터 잘못됐는지 알았으니 제대로 이해하고
다음에 비슷한 문제를 만난다면 풀 수 있도록 해야지 👩🏻‍💻🔥

📌 풀이

https://velog.io/@kimtaeeeny/프로그래머스-괄호-변환-javascript-2020카카오공채
https://velog.io/@sso/프로그래머스-Javascript-괄호변환

profile
Frontend Engineer & Value Creator

0개의 댓글