728x90
순열 : 서로 다른 n 개 중 r 개를 골라 순서를 고려해 나열한 경우의 수
📌 코드로 구현
import java.util.Arrays;
class Solution {
static int sum=0;
static int[] arr, result;
static boolean[] check;
static int n;
public static void main(String[] args) {
arr = new int[]{3, 6, 9};
check = new boolean[arr.length];
n = 2; // arr 배열 중에서 뽑을 개수
result = new int[2];
DFS(0);
}
static void DFS(int start) {
if(start == n) {
System.out.println(Arrays.toString(result));
return;
}
for(int i=0; i<arr.length; i++) {
if(check[i]) continue;
check[i] = true;
result[start] = arr[i];
DFS(start+1);
check[i] = false;
}
}
}
[3, 6]
[3, 9]
[6, 3]
[6, 9]
[9, 3]
[9, 6]
- arr 배열인 [3, 6 , 9] 의 원소 3개 중에서 2개를 골라서 순서를 고려하여 출력하기 → ₃P₂
728x90
'[알고리즘] > 자료구조' 카테고리의 다른 글
[자료구조] 그래프와 인접행렬 (0) | 2022.02.23 |
---|---|
[자료구조] 이진 트리 레벨 탐색 (BFS : Breath-First-Search) (0) | 2022.02.22 |
[자료구조] 부분 집합 구하기 (DFS) (0) | 2022.02.16 |
[자료구조] 이진트리 순회(DFS : Depth - First Search) (0) | 2022.02.13 |
[자료구조] 재귀함수 (0) | 2022.02.13 |