BaekJoon

15657번:N과 M (8)[Java]

충 민 2022. 9. 1. 21:05

메서드 매개변수를 시작하는 index, 출력을 위하여 cnt , StringBuilder 3개로 잡는다.

 

[소스코드]

package algorithm15657;
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);
		
		StringBuilder sb = new StringBuilder();
		go(0,0,sb);
		System.out.println(sb);
	}
	
	public static void go(int index, int cnt,StringBuilder sb) {
		

		if (cnt == m) {
			for (int i=0; i<m; i++) {
				sb.append(a[i] + " ");
			}
			sb.append("\n");
		} else {
			
			for (int i=index; i<n; i++) {
				a[cnt] = useint[i];
				go(i, cnt+1, sb);
			}
			
		}
	}
}

실행결과