순열과 조합 Javascript로 구현하기
들어가며 알고리즘 스터디 중 많은 혼선을 겪었던 DFS, 그 중 응용되는 범위가 넓은 만큼 헷갈리기도 했던 순열과 조합 파트를 정리해본다.
한 경로를 따라 가능한만큼 멀리까지 탐색하고, 더 이상 갈 곳이 없을 때 되돌아와 다른 경로로 탐색을 진행하는 방식. 순열 (Permutation) 정의 주어진 요소들을 나열하는 모든 순서를 구하는 것. 서로 다른 n개에서 r개를 고르는 순열은 nPr로 표기한다.
요소의 순서가 다르면 다른 경우로 취급하기 때문에 과 같이 같은 요소라도 다른 순서이면 별개의 경우로 취급한다. 구현 DFS를 활용해 순열을 구현할 땐 아래의 단계를 따른다. 재귀 함수를 사용해 DFS를 구현한다. 순열을 구하는 함수는 탐색할 배열과 주어진 순열의 길이를 매개변수로 받는다. DFS 함수에서 현재까지 구한 순열의 길이가 주어진 값과 같을 때 : 구한 순열을 저장하고 탐색을 종료한다. DFS 함수에서 현재까지 구한 순열의 길이가 주어진 값과 다를 때 : (아직 사용…