Skip to content
This repository was archived by the owner on Dec 1, 2022. It is now read-only.

Latest commit

 

History

History
49 lines (45 loc) · 1.42 KB

permutations.md

File metadata and controls

49 lines (45 loc) · 1.42 KB

리스트의 순열을 사전순으로!

숫자를 담은 1차원 리스트 mylist가 있어요. 원소로 이루어진 모든 순열을 사전순으로 리턴하는 solution 함수를 만드세요!

input example 1:
[2, 1]

output example 1:
[[1, 2], [2, 1]]


input example 2:
[1, 2, 3]

output example 2:
[[1, 2, 3], [1, 3, 2], [2, 1, 3], [2, 3, 1], [3, 1, 2], [3, 2, 1]]

아마 해당 기능을 모르신다면 for문을 이용해 리스트를 만들어 갈 것이라 예상돼요!

defsolution(mylist): result= [mylist[:]] c= [0] *len(mylist) i=0whilei<len(mylist): ifc[i] <i: ifi%2==0: mylist[0], mylist[i] =mylist[i], mylist[0] else: mylist[c[i]], mylist[i] =mylist[i], mylist[c[i]] result.append(mylist[:]) c[i] +=1i=0else: c[i] =0i+=1returnresult


보다 파이썬답게 작성한다면?

파이썬의 itertools에는 permutations라는 함수가 있어요!

importitertoolsdefsolution(mylist): mylist.sort() returnlist(map(list, itertools.permutations(mylist)))

아주 간단하게 구현이 되는군요!
정말 우리가 생각하는 것 이상의 기능을 가진 함수들이 많은 것 같아요.
close