[leetcode-python3] 22. Generate Parentheses

shsh·2020년 12월 23일
0

leetcode

목록 보기
38/161

22. Generate Parentheses - python3

Given n pairs of parentheses, write a function to generate all combinations of well-formed parentheses.

내 머리는 너무나 나빠서... 아이디어도 떠오르지 않음
이런 문제는 stack 을 많이 써서 스택으로 어떻게 하면 되려나 했지만..
도저히 감이 안잡혀서 베꼈다...^^

Other Answer 1: Accepted (Runtime: 32 ms - 82.14% / Memory Usage: 14.7 MB - 21.31%)

class Solution(object):
    def generateParenthesis(self, N):
        ans = []
        def backtrack(S = '', left = 0, right = 0):
            if len(S) == 2 * N:
                ans.append(S)
                return
            if left < N:
                backtrack(S+'(', left+1, right)
            if right < left:
                backtrack(S+')', left, right+1)

        backtrack()
        return ans

찾아보니까 backtracking 을 많이 사용하는 것 같음
코드 한줄한줄씩 예시로 테스트해보면 신기하게도 답이 나온다;
근데 완벽한 이해는 안된다는 점^^
그냥 외워야겠음

profile
Hello, World!

0개의 댓글

관련 채용 정보