반응형
import java.util.Arrays;
public class Permutation {
static int[] arr = {1,2,3};
public static void main(String[] args) {
perm(arr.length,0);
}
static void perm(int n, int k) {
if(k == n) {
System.out.println(Arrays.toString(arr));
return;
}
for(int i = k; i < arr.length; i++) {
swap(k,i);
perm(n,k+1);
swap(k,i);
}
}
static void swap(int i, int j) {
int tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
}
}
import java.util.Arrays;
public class Permutation {
static int[] arr = {1,2,3};
public static void main(String[] args) {
comb(arr.length,0,3);
}
static boolean[] visited = new boolean[arr.length];
static void comb(int n, int k, int r) {
if(r == 0) {
for(int i = 0; i < arr.length; i++)
if(visited[i])
System.out.print(arr[i]+" ");
System.out.println();
return;
}
for(int i = k; i < n; i++) {
visited[i] = true;
comb(n,i+1,r-1);
visited[i] = false;
}
}
static void swap(int i, int j) {
int tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
}
}
아직은 이렇게 짜는 순열과 조합이 이해가 안된다. 코드가 간단해서 이렇게 써놓았지만 나중에는 이해하고 쓰도록 해야지.
'알고리즘 > 개념' 카테고리의 다른 글
투 포인터 (0) | 2020.05.03 |
---|---|
구간 트리(세그먼트 트리) (0) | 2020.04.18 |
다익스트라,벨만포드,플로이드 워샬 (0) | 2020.04.16 |
DISJOINT-SETS, MST (0) | 2020.02.14 |