1. 문제 링크
2. 문제 및 입출력예제
3. 문제 풀이
N과 M 문제를 조금만 바꾸면 된다.
카운트를 하는 c와 시작 값인 s를 이용해서 조합하면 된다.
4. 코드
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Scanner;
public class Main {
private static StringBuilder sb = new StringBuilder();
private static int N;
private static int M;
private static int[] input;
private static int[] numbers;
private static boolean[] isSelected;
private static ArrayList<int[]> list = new ArrayList<>();
public static void main(String[] args) throws Exception {
Scanner sc = new Scanner(System.in);
N = sc.nextInt();
M = sc.nextInt();
input = new int[N];
numbers = new int[M];
isSelected = new boolean[N+1];
for(int i=0;i<N;i++) {
input[i] = i+1;
}
permutation(0, 1);
for(int[] numbers : list) {
for(int i=0;i<numbers.length;i++) {
sb.append(numbers[i]+" ");
}
sb.append("\n");
}
System.out.println(sb);
sc.close();
}
private static void permutation(int c, int s) {
if(c == M) {
list.add(Arrays.copyOfRange(numbers, 0, numbers.length));
return;
}
for(int i=s;i<=N;i++) {
numbers[c] = i;
permutation(c+1, i+1);
}
}
}
'ALGORITHM' 카테고리의 다른 글
백준 14501 퇴사 (Java) (0) | 2023.02.12 |
---|---|
백준 1244 스위치 켜고 끄기 (Java) (0) | 2023.02.11 |
백준 15649 N과 M (Java) (0) | 2023.02.09 |
백준 9095 1, 2, 3 더하기 (Java) (0) | 2023.02.08 |
백준 17478 재귀함수가 뭔가요? (Java) (0) | 2023.02.07 |