BaekJoon

15654번: N과 M (5)[Java]

충 민 2022. 9. 1. 20:09

처음 방문한 값만 아니고 방문하지 않은 값을 나오게한다.

[소스코드]

package algorithm15654;
import java.util.*;

public class Main {
	static int n, m;
	static int a[];
	static int useint[];
	static boolean[] visit;
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		
		n = sc.nextInt();//수 입력
		m = sc.nextInt();//한줄당 개수 입력
		
		a = new int[m];
		useint = new int[n];
		visit = new boolean[n+1];
        //차례대로 수 입력
		for(int i=0; i<n;i++) {
			useint[i]=sc.nextInt();
		}
		Arrays.sort(useint);
		
		go(0);

	}

	public static void go(int index) {
		
		if(index == m) { 
			for(int val:a) {
				System.out.print(val + " ");
			}
			System.out.println();
			return;
		}else {
		
		for(int i=0; i<n; i++) {
			if(!visit[i]) {
				visit[i] =true;
				a[index] = useint[i];
				go(index+1);
				visit[i]=false;
			}
		}
	}
	}
}

실행결과