CodingTest/LeetCode

[LeetCode] 20. Valid Parentheses, Easy

뜸부깅 2025. 4. 2. 14:53
반응형

1. 문제

  • (){}[] 각 문자로 구성된 문자열이 주어질 때, 옳바른 괄호로 구성되어 있는지 반환하라.

2. 해결

function isValid(s: string): boolean {
    const stack = new Array();
    
    const map = {
        ')' : '(',
        ']' : '[', 
        '}' : '{'
    }

    for(const char of s) {
        if(!map.hasOwnProperty(char)) stack.push(char);
        else {
            const top = stack.pop();

            if(top !== map[char]) return false;
        }
    }
    
    return stack.length === 0;
};
  • 오픈되어 있는지 판단을 어떻게 해야 하는 지 감을 못잡았다. 
  • map에 닫는 괄호만 속성값으로 주고, 저기에 없으면 열린 괄호이다.
  • 열린 괄호를 만나면 stack에 넣고, 닫힌 괄호가 나타나면 옳바르게 맵핑됐는지 확인하고 false를 반환한다.
  • stack이 다 비어야 옳바르게 괄호가 모두 사용된 것이다.