728x90
300x250
임의로 지정해준 숫자들의 순열구하는 문제
import java.util.*;
public class Main {
public static int N,M;
public static int[] arr;
public static int[] ans;
public static boolean[] visit;
public static StringBuilder sb = new StringBuilder();
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
N = sc.nextInt();
M = sc.nextInt();
arr = new int[N];
ans = new int[M];
visit = new boolean[N];
for (int i = 0; i < N; i++) {
arr[i]=sc.nextInt();
}
Arrays.sort(arr);
dfs(0);
System.out.println(sb);
}
public static void dfs(int idx) {
//종료조건
//뽑을 갯수만큼 뽑았는가?
if(idx == M) {
for (int i = 0; i < M; i++) {
sb.append(ans[i]+" ");
}
sb.append("\n");
return;
}
//탐색
for (int i = 0; i < N; i++) {
int n = arr[i];
//이미 들렸던 곳인가?
if(visit[i])
continue;
visit[i] = true;
ans[idx] = n;
dfs(idx+1);
visit[i] = false;
}
}
}
728x90
'알고리즘 > 조합 & 순열' 카테고리의 다른 글
백준 14888번: 연산자 끼워넣기 (0) | 2020.03.10 |
---|---|
백준 15655번: N과 M (6) (0) | 2020.03.04 |
백준 15652번: N과 M (4) (0) | 2020.03.04 |
백준 15651번: N과 M (3) (0) | 2020.03.03 |
백준 15650번: N과 M (2) (0) | 2020.03.03 |