반응형

[광고 누르면 오늘의 행운 상승!!]

  • 서로 다른 것들 중 몇개를 뽑아서 한 줄로 나열하는 것
  • 서로 다른 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

+ Recent posts