반응형
[광고 누르면 오늘의 행운 상승!!]
- 서로 다른 것들 중 몇개를 뽑아서 한 줄로 나열하는 것
- 서로 다른 n개 중 r개를 택하는 순열은 아래와 같이 표현한다.
예제 코드
package array2;
import java.util.Arrays;
import java.util.Scanner;
//순열(permutation) nPr = 4P3 = 4*3*2 = 24
public class PermComb {
public static int n, r, cn;
public static int[] d = {1,2,3,4};
public static int[] a, v;
public static void permcomb(int start, int cnt) {
if(cnt == r) {
cn++;
System.out.println(Arrays.toString(a));
return;
}
for (int i = 0; i < n ; i++) { // // i == 0면서 중복방지
if(v[i] == 0) {
v[i] =1;
a[cnt] = d[i];
permcomb(i,cnt+1);
v[i] = 0;
}
}
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
n = 4; //sc.nextInt();
r = 3; //sc.nextInt();
//4개중 3개뽑기
v = new int[n];
a = new int[r];
permcomb(0,0);
System.out.println(cn);
sc.close();
}
}
[1, 2, 3]
[1, 2, 4]
[1, 3, 2]
[1, 3, 4]
[1, 4, 2]
[1, 4, 3]
[2, 1, 3]
[2, 1, 4]
[2, 3, 1]
[2, 3, 4]
[2, 4, 1]
[2, 4, 3]
[3, 1, 2]
[3, 1, 4]
[3, 2, 1]
[3, 2, 4]
[3, 4, 1]
[3, 4, 2]
[4, 1, 2]
[4, 1, 3]
[4, 2, 1]
[4, 2, 3]
[4, 3, 1]
[4, 3, 2]
반응형
'1. 알고리즘 이론 > 1. 순열, 조합' 카테고리의 다른 글
조합[NextPermution][Java] (0) | 2020.03.11 |
---|---|
조합(Combination) (0) | 2020.03.01 |