Programmers/Lv2

[프로그래머스/JS] 올바른 괄호 (Lv2)

hellosonic 2023. 8. 4. 00:06

문제요약

나의 코드 및 설명 (효율성 TC2 시간초과)

function solution(s){
    var answer = true;
    var stack = [];
    
    for (var i = 0; i < s.length; i++){
        if (s[i] == "(") {
            stack.push("(");
        } else {
            if (stack[stack.length - 1] == "(") {
                stack.pop();
            } else {
                stack.push(")");
            }
        }
    }
    
    if (stack.length == 0){
        answer = true;
    } else {
        answer = false;
    }

    return answer;
}

다른 코드 및 설명

function solution(s){
    var answer = true;
    var stack = [];
    
    s.split("").map(string => {
        if (string === ')' && stack[stack.length-1] === '('){
            stack.pop();
        } else {
            stack.push(string);
        }
    })
    
    if (stack.length == 0) {
        answer = true;
    } else {
        answer = false;
    }
    
    return answer;
    
}

피드백

map() 함수는 새로운 배열을 생성하는 역할뿐만 아니라, 단순히 배열의 요소를 순회하면서 조건에 맞는 정답을 도출할 수 있다는 것을 확인할 수 있었다.