def comb(arr,n):
result = []
if n > len(arr):
return result
if n == 1:
for i in arr:
result.append([i])
elif n > 1:
for i in range(len(arr) - n + 1):
for j in comb(arr[i + 1:], n - 1):
result.append([arr[i]] + j)
return result
def perm(arr,n):
result = []
if n > len(arr):
return result
if n == 1:
for i in arr:
result.append([i])
elif n > 1:
for i in range(len(arr)):
ans = [i for i in arr]
ans.remove(arr[i])
for p in perm(ans, n-1):
result.append([arr[i]]+p)
return result
반응형
'공부 서랍장 > 알고리즘 공부' 카테고리의 다른 글
[프로그래머스] 카펫 python (1) | 2022.09.19 |
---|---|
[프로그래머스] 소수 찾기 python (0) | 2022.09.18 |
[프로그래머스] 모음사전 python (0) | 2022.09.18 |
[프로그래머스] H-Index python (0) | 2022.09.18 |
[프로그래머스] 성격 유형 검사하기 python (0) | 2022.09.18 |