HelloCho

[Python] #20. Valid Parentheses(Easy) 본문

코테/LeetCode

[Python] #20. Valid Parentheses(Easy)

choo2969 2020. 9. 6. 02:31

문제 #20. Add Two NumbersValid Parentheses

이 문제는 괄호가 주어졌을 때, 올바르게 괄호가 닫혀있는지의 여부를 확인하는 문제이다. 

이 문제를 해결하기 위해서 stack 자료구조를 활용했다. 

class Solution:
    def isValid(self, s):
        match = {
            ')':'(',
            '}':'{',
            ']': '['
        }
        stack = []
        for i in s:
            if i in '({[':
                stack.append(i)
            elif i in match:
                if len(stack) == 0 :
                    return False
                else:
                    t = match[i]
                    if t != stack.pop():
                        return False
        return len(stack) == 0 

괄호를 여는 문자 ( { [의 문제가 입력 됐을때 stack에 넣는다. 

만약 여는 것이 아닐 경우에는 match라는 dictionary에 저장한 값을 활용해서 ) } ]을 넣으면 ({[의 여는 괄호가 나오니 그것과 stack에서 하나의 값을 pop해서 그 두개가 같지 않으면 괄호가 올바르게 닫히지 않은 것으로 판단한다.

결과

24ms의 속도와 13.9MB의 메모리로 통과했다. 

Comments