Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

코드와이

순열과 조합 본문

algorithm

순열과 조합

코드와이 2021. 2. 5. 10:42

 

 순 열

package week0201_0205;

import java.util.Arrays;

public class permu {
	
	static int N = 3;
	static int[] numbers;
	static boolean[] isSelected;
	public static void main(String[] args) {
		
		numbers = new int[3];
		isSelected = new boolean[4];
		
		perm(0);
	}
	
	public static void perm(int cnt) {
		
		if ( cnt == 3) {
			System.out.println(Arrays.toString(numbers));
			return;
		}
		for(int i = 1; i <= N ; i++) {
			if( isSelected[i] ) continue;
			numbers[cnt] = i;
			isSelected[i] = true;
			perm(cnt + 1);
			isSelected[i] = false;
		}
		
	}
}

<실행결과>

 

 조 합 

package week0201_0205;

import java.util.Arrays;

public class comb {
	
	static int N = 5;
	static int R = 3;
	static int[] numbers = new int[R];
	static int[] input = {1,2,3,4,5};
	
	public static void main(String[] args) {
		combi(0,0);
	}
	
	public static void combi(int cnt, int idx) {
		
		if ( cnt == R ) {
			System.out.println(Arrays.toString(numbers));
			return;
		}
		for( int i = idx ; i < N ; i++) {
			numbers[cnt] = input[i];
			combi(cnt + 1, i + 1);
		}
	}
}

<실행결과>

 

'algorithm' 카테고리의 다른 글

[Back Tracking] N-Queen 예제 + 설명  (0) 2021.02.18
분할 알고리즘 예시(1)  (0) 2021.02.16
CompleteBinaryTree  (0) 2021.02.10
LinkedList  (0) 2021.02.10
부분집합  (0) 2021.02.05