1. ๋ถ๋ถ์งํฉ - ๋นํธ๋ง์คํน
int[] arr = {1, 2, 3, 4, 5};
int length = arr.length; //2์ 5์น
System.out.println(1<<length); //32
for (int i=0; i<(1<<length); i++) { // ๋ถ๋ถ์งํฉ์ ๊ฐ์
for (int j=0; j<length; j++) {
if ((i & (1<<j)) != 0) { // ์กด์ฌํ๋ค
// TODO~~
}
}
}
2. ์์ด - ๋นํธ๋ง์คํน
import java.io.*;
import java.util.*;
public class Main {
static int[] arr = {1, 2, 3, 4, 5};
static int[] tgt = new int[3];
public static void main(String[] args) throws Exception {
System.out.println("test:"+(18 & (1<<3))); //0
perm(0, 0);
}
// ์์ด - ๋นํธ๋ง์คํน
static void perm(int idx, int flag) {
if (idx == 3) {
System.out.println(Arrays.toString(tgt));
return;
}
for (int i=0; i<arr.length; i++) {
if ((flag & (1<<i)) != 0) continue;
tgt[idx] = arr[i];
perm(idx+1, flag|1<<i);
}
}
}
'Algorithm > ์๋ฃ๊ตฌ์กฐ & ์๊ณ ๋ฆฌ์ฆ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์ฐ์ ์์ ํ(Priority Queue)์ ํ(Heap) (0) | 2023.08.17 |
---|---|
[์๋ฃ๊ตฌ์กฐ] HashSet (0) | 2023.01.09 |
[์๋ฃ๊ตฌ์กฐ] HashMap (0) | 2023.01.04 |
[์๊ณ ๋ฆฌ์ฆ] BFS์ DFS ์๊ฐ๋ณต์ก๋ (0) | 2022.11.20 |
[์๊ณ ๋ฆฌ์ฆ] ์์ด, ์กฐํฉ, ๋ถ๋ถ์งํฉ Java (0) | 2022.08.22 |