반응형
package N과M;

import java.util.*;
import java.io.*;
public class N과M2 {
	
	public static int N,M;
	public static boolean visit[];
	public static int arr[];
	public static int numArr[];
	
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		N = sc.nextInt(); //N개중에
		M = sc.nextInt(); //M개뽑기
		
		arr = new int[M]; //정답이 담길 배열
		numArr = new int[N]; //모든 숫자가 담길 배열
		for (int i = 0; i < numArr.length; i++) {
			numArr[i] = i+1;
		}
		visit = new boolean[N];
		
		permutation(0, 0);
	}
	public static void permutation(int start, int depth) {
		if(depth == M) {// M개를 뽑았을 때
			for (int i = 0; i < arr.length; i++) {
				System.out.print(arr[i] + " ");
			}
			System.out.println();
			return;
		}
		
		for (int i = start; i < N; i++) {
			if(!visit[i]) {
				visit[i] = true;
				arr[depth] = numArr[i];
				permutation(i, depth+1); // 깊이 증가
				visit[i] = false;
			}
		}
	}
	
}

기본적인 조합 코드

반응형

'2. 알고리즘사이트 > 1. 백준' 카테고리의 다른 글

N과M(6) -오름차순 조합-  (0) 2020.03.01
N과M(5) -오름차순 순열-  (0) 2020.03.01
N과M(4) -중복조합-  (0) 2020.03.01
N과M(3) -중복순열-  (0) 2020.03.01
N과M(1) -순열-  (0) 2020.02.29

+ Recent posts