https://www.acmicpc.net/problem/15654
15654번: N과 M (5)
N개의 자연수와 자연수 M이 주어졌을 때, 아래 조건을 만족하는 길이가 M인 수열을 모두 구하는 프로그램을 작성하시오. N개의 자연수는 모두 다른 수이다. N개의 자연수 중에서 M개를 고른 수열
www.acmicpc.net
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.StringTokenizer;
public class Main {
static int N, M;
static int[] num, isSelected;
static StringBuilder sb = new StringBuilder();
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
N = Integer.parseInt(st.nextToken());
M = Integer.parseInt(st.nextToken());
num = new int[N];
isSelected = new int[N];
st = new StringTokenizer(br.readLine());
for (int i = 0; i < N; i++) {
num[i] = Integer.parseInt(st.nextToken());
}
Arrays.sort(num);
search(0, 0);
System.out.println(sb);
}
private static void search(int cnt, int flag) {
if (cnt == M) {
for (int i = 0; i < M; i++) {
sb.append(isSelected[i]).append(" ");
}
sb.append("\n");
return;
}
for (int i = 0; i < N; i++) {
if ((flag & (1 << i)) != 0) {
continue;
}
isSelected[cnt] = num[i];
search(cnt + 1, flag | (1 << i));
}
}
}
'Baekjoon Online Judge > Java' 카테고리의 다른 글
[Baekjoon Online Judge] 18290 - NM과 K (1) / Java (0) | 2021.06.23 |
---|---|
[Baekjoon Online Judge] 15655 - N과 M (6) / Java (0) | 2021.06.22 |
[Baekjoon Online Judge] 15652 - N과 M (4) / Java (0) | 2021.06.19 |
[Baekjoon Online Judge] 2178 - 미로 탐색 / Java (0) | 2021.06.19 |
[Baekjoon Online Judge] 15651 - N과 M (3) / Java (0) | 2021.06.17 |