🫡문제
백준 15650 - N과 M(2)
완전 탐색
🫡코드
import java.util.Scanner;
public class Main {
static int[] arr;
static int R;
static int[] selection;
static boolean[] isSelected;
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
int M = sc.nextInt();
arr = new int[N];
for (int i = 0; i < N; i++) {
arr[i] = i + 1;
}
R = M;
selection = new int[M];
isSelected = new boolean[arr.length];
combination(0, 0);
}
static void combination(int r, int start) {
if (r == R) {
for (int i = 0; i < R; i++)
System.out.print(arr[selection[i]] + " ");
System.out.println();
return;
}
for (int i = start; i < arr.length; i++) {
if (isSelected[i])
continue;
isSelected[i] = true;
selection[r] = i;
combination(r + 1, i);
isSelected[i] = false;
}
}
}