Python
파이썬 알고리즘 인터뷰 - 34. 순열
s코딩초보s
2022. 1. 30. 13:57
<--- 리트코드 46. Permulations --->
# 문제: 서로 다른 정수를 입력받아 가능한 모든 순열을 리턴하라.
입력
[1,2,3] |
출력
[ [1,2,3], [1,3,2], [2,1,3], [2,3,1], [3,1,2], [3,2,1] ] |
# 풀이
1. DFS를 활용한 순열 생성
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
def permute(nums):
results = []
prev_elements = []
def dfs(elements):
if len(elements) == 0:
results.append(prev_elements[:])
print(results)
for e in elements:
next_elements = elements[:]
next_elements.remove(e)
prev_elements.append(e)
dfs(next_elements)
prev_elements.pop()
dfs(nums)
return results
nums = [1,2,3]
print(permute(nums))
|
cs |
2. itertools 모듈 사용
1
2
3
4
5
6
7
|
import itertools
def permute(nums):
return list(itertools.permutations(nums))
nums = [1,2,3]
print(permute(nums))
|
cs |