반응형
.
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
perm(0, 0, new int[]{1, 3, 5, 7}, new int[3]);
System.out.println("---");
comb(0, 0, new int[]{1, 3, 5, 7}, new int[3]);
}
static void perm(int cnt, int mask, int[] arr, int[] perm) {
if (cnt == perm.length) {
System.out.println(Arrays.toString(perm));
return;
}
for (int i = 0; i < arr.length; i++) {
if ((mask & (1 << i)) != 0) continue;
perm[cnt] = arr[i];
perm(cnt + 1, mask | (1 << i), arr, perm);
}
}
static void comb(int cnt, int mask, int[] arr, int[] comb) {
for (int i = 1; i < (1 << arr.length); i++) {
int idx = 0;
for (int j = 0; j < arr.length; j++) {
if (idx == comb.length) {
idx = 0;
break;
}
if ((i & (1 << j)) != 0) comb[idx++] = arr[j];
}
if (idx == comb.length) {
System.out.println(Arrays.toString(comb));
}
}
}
}
반응형
'언어 > JAVA' 카테고리의 다른 글
이상하고 아름다운 JAVA 퀴즈 6 (0) | 2023.04.11 |
---|---|
UDP vs TCP 비교 (부제 : TCP가 UDP보다 빠르다?) (0) | 2023.04.11 |
이상하고 아름다운 JAVA 퀴즈 5 (0) | 2023.03.13 |
이상하고 아름다운 JAVA 퀴즈 4 (0) | 2023.03.13 |
이상하고 아름다운 JAVA 퀴즈 3 (0) | 2023.03.13 |