[Leetcode]22. Generate Parentheses(x)

2024. 8. 2. 07:24Algorithm

1. problem :

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

 

2. solution 1 :

class Solution:
    def generateParenthesis(self, n: int) -> List[str]:
        result = []

        def backTrack(s="",open_count = 0, close_count = 0):
            if len(s) == 2 * n:
                result.append(s)
                return 
            
            if open_count < n:
                backTrack(s + "(",open_count +1, close_count) 

            if close_count < open_count:
                backTrack(s + ")",open_count, close_count +1)
            
        
        backTrack()
        return result

backtracking을 활용하여 푸는 문제다. base case를 설정한 후, n = k 일 때 성립한다고 가정하고, k+1 때를 아무렇지 않게 쓸 수 있어야 한다. 

'Algorithm' 카테고리의 다른 글

[Leetcode]853. Car Fleet(x)  (0) 2024.08.02
[Leetcode]739. Daily Temperatures(x)  (0) 2024.08.02
[Leetcode]150. Evaluate Reverse Polish Notation  (0) 2024.08.01
[Leetcode]155. Min Stack  (0) 2024.08.01
[Leetcode]20. Valid Parentheses  (0) 2024.08.01