import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int[] arr = {1, 2, 3}; //순열을 만들 배열
int n = arr.length; //배열의 길이
int[] output = new int[n]; //순열 출력을 위한 배열
boolean[] visited = new boolean[n];
permutation(arr, output, visited, 0, n, 3); //r = 3, 3개를 뽑을 것
}
// 순서를 지키면서 n 개중에서 r 개를 뽑는 경우
static void permutation(int[] arr, int[] output, boolean[] visited, int depth, int n, int r) {
if(depth == r) {
print(output, r); //순열 출력을 위한 print 함수
return;
}
for(int i = 0; i < n; i++) {
if(visited[i] != true) {
visited[i] = true;
output[depth] = arr[i];
permutation(arr, output, visited, depth + 1, n, r);
visited[i] = false;
}
}
}
// 배열 출력
static void print(int[] arr, int r) {
for(int i = 0; i < r; i++)
System.out.print(arr[i] + " ");
System.out.println();
}
}
'PS' 카테고리의 다른 글
백준 - 색칠하기 13265 자바 (0) | 2023.03.10 |
---|---|
자바 - 미로탐색 코드 (Stack) (0) | 2022.07.20 |