[LeetCode] Valid Parentheses - JavaScript

이은빈 EUNBIN·2021년 3월 16일
1


👩🏻‍💻 문제

LeetCode #20 Valid Parentheses



👩🏻‍💻 풀이

var isValid = function(s) {
    let map = new Map();
    map.set('(', ')');
    map.set('[', ']');
    map.set('{', '}');
    let stack = [];

    for(let i = 0; i < s.length; i++) {
        if(map.has(s.charAt(i))) { // map에 (, [, { 이 있으면
            stack.push(s.charAt(i)); // (, [, { 를 stack에 push
        } else {
            let pop = stack.pop(); // pop = (, [, {
            if(map.get(pop) !== s.charAt(i)) { // i가 ), ], } 와 다르면
                return false; // 결과는 false
            }
        }
    }
    return stack.length === 0;
};

new Map()
: key(키)-value(값) 쌍을 저장하며 각 쌍의 삽입 순서도 기억하는 콜렉션

map.set(key, value)
: key를 이용해 value를 저장

map.has(key)
: key가 존재하면 true, 존재하지 않으면 false를 반환

map.get(key)
: key에 해당하는 value를 반환, key가 존재하지 않으면 undefined를 반환

map.delete(key)
: key에 해당하는 값을 삭제

map.clear()
: 맵 안의 모든 요소를 제거

map.size
: 요소의 개수를 반환






참고자료 - Map 설명
참고자료 - Map과 Set

profile
Frontend Engineer & Value Creator

0개의 댓글