돌아서면 자꾸 잊는 조합과 순열 코드
private static void comb(int n, int idx, int cnt, int[] path) {
if(cnt == n) {
return;
}
for(int i = idx; i < list.size(); i++) {
path[cnt] = i;
comb(n, i+1, cnt+1, path);
}
}
private static boolean[] visited; // 방문 체크
private static void perm(int n, int cnt, int[] path) {
if (cnt == n) {
return;
}
for (int i = 0; i < list.size(); i++) {
if (visited[i]) continue;
visited[i] = true;
path[cnt] = i;
perm(n, cnt+1, path);
visited[i] = false;
}
}