오늘은 문제 풀이를 성공하지 못했다.

문제의 구성을 보고 스택 자료구조 형태를 떠올리고 나름대로 구현을 했지만 디테일한 valid 조건 검사를 하지 못한 것 같다.

문제에서 사용되는 괄호들을 한 쌍으로 묶어 객체 형태로 저장하고, 스택을 구현할 빈 배열 하나를 생성하였다.

주어진 문자열을 for...of문을 사용하여 순회하며 FILO에 맞게 스택에 쌓고 빼며 객체의 key: value 쌍을 이용하여 비교하는 작업을 수행하였다.

테스트 케이스를 추가하고 경우의 수를 더 생각하여 코드를 수정해 정답을 맞출 계획이다.

/**
 * @param {string} s
 * @return {boolean}
 */
var isValid = function(s) {
    const obj = {'(':')','{':'}','[':']'};
    const answer = [];
    if(s.length % 2 === 1){ return false}
    else{
        for(const value of s){
            if(obj[value]){ answer.push(value)}
            else if(answer.length === 0 && obj[value] == false){return false}
            else if(obj[answer.pop()] === value){return true}
            else if(obj[answer.pop()] !== value){return false}
        }
    }
    if(answer.length !== 0){return false}
};

+ Recent posts