반응형

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

  • 서로 다른 n개의 원소 중 r개를 순서 없이 골라낸 것을 조합(Combination)이라고 부른다.
  • 조합의 수식

예제 코드

0package array2;

import java.util.Arrays;
import java.util.Scanner;

//조합(Combination) nCr = 4C3 = 4*3*2/3*2*1
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 = start; i < n ; i++) { // i == start 면서 중복방지
			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, 4]
[2, 3, 4]

 

반응형

'1. 알고리즘 이론 > 1. 순열, 조합' 카테고리의 다른 글

조합[NextPermution][Java]  (0) 2020.03.11
순열(Permutation)  (0) 2020.03.01

+ Recent posts