LeetCode 46. Permutations

개발공부를해보자·2025년 2월 3일

LeetCode

목록 보기
34/95

파이썬 알고리즘 인터뷰 문제 34번(리트코드 46번) Permutations
https://leetcode.com/problems/permutations/

나의 풀이1

class Solution:
    def permute(self, nums: List[int]) -> List[List[int]]:
        result = []

        def helper(path):
            if len(path) == len(nums):
                result.append(path)
                return
            for num in nums:
                if num not in path:
                    helper(path + [num])
        
        helper([])

        return result

나의 풀이2

class Solution:
    def permute(self, nums: List[int]) -> List[List[int]]:
        result = []

        def helper(path):
            if len(path) == len(nums):
                result.append(path[:])
                return
            for num in nums:
                if num not in path:
                    path.append(num)
                    helper(path)
                    path.pop()
        
        helper([])

        return result

다른 풀이

class Solution:
    def permute(self, nums: List[int]) -> List[List[int]]:
        result = []
        prev = []

        def helper(elements):
            if len(elements) == 0:
                result.append(prev[:])
            
            for e in elements:
                next_element = elements[:]
                next_element.remove(e)

                prev.append(e)
                helper(next_element)
                prev.pop()
            
        helper(nums)
        return result
profile
개발 공부하는 30대 비전공자 직장인

0개의 댓글