[Array] Permutations

2021. 3. 26. 17:19프로그래밍-코딩테스트/LeetCode

배열이 주어지면 해당 원소들로 만들 수 있는 순열 케이스를 모두 구하는 문제

 

input이 아예 없거나 하나인 경우는 일단 걸러준다.

 

이후 Loop를 돌면서, 순회 차례가 된 원소를 제외하고 나머지를 recursion으로 넘겨준다.

이때 recursion의 결과인 res는 배열로 나올것이므로, 다시 순회하며 결과를 하나씩 만들어준다.

 

이렇게 하는 이유는, 나머지를 가지고 만든 순열의 경우의 수에 순회 차례가 된 원소만 concat으로 붙여주면

해당 배열로 만들 수 있는 모든 경우의 수가 되기 때문이다.

이러한 행위를 순회하면 모든 경우의 수를 구할 수 있다.

'프로그래밍-코딩테스트 > LeetCode' 카테고리의 다른 글

[backtracking] Generate Parentheses  (0) 2021.03.26
[Tree] Binary Tree Inorder Traversal  (0) 2021.03.26
[Queue] Queue Reconstruction by Height  (0) 2021.03.26
[DP] Counting Bits  (0) 2021.03.26
[Array] Partition Labels  (0) 2021.03.26