반응형

 

문자열을 인자로 받습니다.

 

문자열은 [ , ], { , }, ( , )인 괄호들로만 이루어져 있습니다.

 

문자열 괄호들이 올바르게 열고 닫혀있는지를 체크하는 문제입니다.

 

저는 아래와 같이 풀었습니다.

 

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

        for char in s:
            if char in parenthesis.keys():
                stack.append(char)
            else:
                if not stack: return False
                if char == parenthesis.get(stack[-1]):
                    stack.pop()
                else:
                    return False
        
        if stack: return False
        return True

 

1. open 괄호가 들어오면 리스트에 담습니다.

2. close 괄호가 들어오면 list에 open 괄호가 있는지 체크합니다.

3. 있다면 list에서 마지막 open 괄호를 꺼내 close와 맞는지 확인합니다. -> 확인하기 유용하도록 위에 묶음은 dict로 선언했습니다.

4. 맞지 않으면 False를 반환합니다.

5. 마지막으로 list에 문자가 남아 있다면 False를 반환하도록 합니다.

 

감사합니다.

반응형

+ Recent posts