46.Permutations

Coaspe·2021년 11월 15일
0

Algorithm - Graph

목록 보기
3/4

Code

def permute_dfs(nums):
  result = []
  prev_elements = []

  def dfs(elements):
    if len(elements) == 0:
      result.append(prev_elements[:])
  
    for e in elements:
      next_elements = elements[:]
      next_elements.remove(e)
      prev_elements.append(e)
      dfs(next_elements)
      prev_elements.pop()
  
  dfs(nums)
  return result
  
import itertools
def permute_lib(nums):
  return list(map(list, itertools.permutations(nums)))

Note

  • result.append(prev_element)를 하게 되면 Call by object reference가 되므로 prev_element[:]를 사용해서 value만 가져와야 한다.
profile
https://github.com/Coaspe

0개의 댓글