본문 바로가기

Computer Science/CODINGTEST_PRACTICE

[LeetCode] 20. Valid Parentheses 기록

반응형

https://leetcode.com/problems/valid-parentheses/

 

Valid Parentheses - LeetCode

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com

 

괄호가 있는 input이 valid한지 판별하는 문제이다.

 

앞에서 열었던 괄호들을 FILO로 처리해야 하므로 stack을 통해서 구현하면 되겠다 생각

파이썬에서는 스택이 필요하면 리스트를 사용한다.

push는 appned()로 pop은 pop()으로 사용

 

대응하는 무엇인가를 찾는일이므로 참조테이블 형태로 자료구조를 만들어 두면 코드가 간결해진다.

 

class Solution:
    def isValid(self, s: str) -> bool:
        stack = []
        map = {'}':'{', ']':'[', ')':'('}
        for cnt_bracket in s:
            if cnt_bracket not in map:
                stack.append(cnt_bracket)
            elif cnt_bracket in map and len(stack) !=0:
                if map[cnt_bracket] != stack.pop():
                    return False
            else:
                return False
        return len(stack) == 0

 

더 짧게 짠 코드들도 있다.

대부분 괄호를 숫자로 맵핑하여 계산적으로 풀어내는 방법이다.

나는 대체로 그런 방법 보다는 읽기 좋은 코드를 선호해서 위와같이 풀었다.

반응형