[Stack 문제] Leetcode 20. Valid Parentheses

relight123 Kim·2023년 11월 19일

알고리즘

목록 보기
17/22

문제

상기 문제를 지정한 조건 기준으로 괄호의 열고 닫힘이 적절하게 적용되었는지를 판단하는 문제이다.

문제풀이

class Solution:
    def isValid(self, s: str) -> bool:
        stack = deque()
        dic = {"(": ")", "{": "}", "[": "]"}
        cnt = 0

        if len(s) % 2 != 0:
            return False

        i = 0
        while i < len(s):
            if s[i] in dic:
                stack.append(s[i])
                cnt += 1
                i += 1
                continue
            if stack and s[i] == dic[stack[-1]]:
                stack.pop()
                cnt -= 1
                i += 1
                continue
            else:
                return False

            i += 1

        return cnt == 0

Lookback

  1. 과거의 정보를 누적/트래킹 관리에 효율적인 자료구조인 스택을 활용한 문제였다. 기본을 다시 한번 다지기 적절한 문제이다.
profile
하루를 성실하게

0개의 댓글